在 MathLink 中设置 ComplexType

本文关键字:ComplexType 设置 MathLink | 更新日期: 2023-09-27 17:55:15

我还有一个。我尝试在 C# 中使用 Mathematica MathLink 中的ml.ComplexType = System.Type.GetType("Complex");,但是当我尝试使用 GetComplexArray 读取数字时,它抛出了一个异常,指出我必须使用 IMathLink.SetComplexType() 方法,该方法似乎不存在。

有没有办法在不解析字符串的情况下做到这一点,因为我一辈子都无法正确地做到这一点?

在 MathLink 中设置 ComplexType

SetComplexType 的文档在这里: http://reference.wolfram.com/mathematica/NETLink/ref/SetComplexType.html. 您也可以通过将"NETLink/ref/SetComplexType"粘贴到 Mathematica 文档中心来找到它。 这两个来源都表明,在 Mathematica 中使用之前,您必须执行 Needs["NETLink ]"。

供其他人参考,我自己发现了这个问题的答案。

您要做的是创建具有必要属性/方法(例如 System.Numerics.Complex)的任何类的虚拟实例,此处名为 myVar 。现在假设mlIKernelLink的实例,调用

ml.ComplexType = myVar.GetType();

然后,您可以使用 ml.GetComplex()ml.GetComplexArray()