我还有一个。我尝试ml.ComplexType = System.Type.GetType("Complex");
在 C# 中使用 Mathematica MathLink,但是当我尝试使用 GetComplexArray 读取数字时,它抛出了一个异常,指出我必须使用IMathLink.SetComplexType()
似乎不存在的方法。
有没有办法在不解析字符串的情况下做到这一点,因为我一生都不能正确地做到这一点?
我还有一个。我尝试ml.ComplexType = System.Type.GetType("Complex");
在 C# 中使用 Mathematica MathLink,但是当我尝试使用 GetComplexArray 读取数字时,它抛出了一个异常,指出我必须使用IMathLink.SetComplexType()
似乎不存在的方法。
有没有办法在不解析字符串的情况下做到这一点,因为我一生都不能正确地做到这一点?
SetComplexType 的文档在这里:http ://reference.wolfram.com/mathematica/NETLink/ref/SetComplexType.html 。您也可以通过将“NETLink/ref/SetComplexType”粘贴到 Mathematica 文档中心来找到它。这两个来源都表明您必须Needs["NETLink
在 Mathematica 中使用之前执行 ]"。
供其他人参考,我自己发现了这个问题的答案。
您所做的是创建具有必要属性/方法(例如System.Numerics.Complex
)的任何类的虚拟实例,此处命名为myVar
. 现在假设ml
是一个实例IKernelLink
,调用
ml.ComplexType = myVar.GetType();
然后,您可以使用ml.GetComplex()
或ml.GetComplexArray()
。