我还有一个。我尝试在C#中使用ml.ComplexType = System.Type.GetType("Complex");和Mathematica MathLink,但是当我尝试用GetComplexArray读取数字时,它抛出了一个异常,声明我必须使用IMathLink.SetComplexType()方法,而这个方法似乎并不存在。
有没有办法在不解析字符串的情况下做到这一点,因为我永远都不能正确地做到这一点?
发布于 2011-05-07 08:56:14
对于其他人的参考,我自己找到了这个问题的答案。
您要做的就是为任何具有必要属性/方法(比如System.Numerics.Complex)的类创建一个虚拟实例,这里的名称是myVar。现在假设ml是IKernelLink的一个实例,调用
ml.ComplexType = myVar.GetType();然后,您可以使用ml.GetComplex()或ml.GetComplexArray()。
发布于 2011-05-05 02:48:02
SetComplexType的文档在这里:http://reference.wolfram.com/mathematica/NETLink/ref/SetComplexType.html。您也可以通过将"NETLink/ref/SetComplexType“粘贴到Mathematica文档中心来找到它。这两个来源都表明您必须先执行Needs["NETLink]“,然后才能在Mathematica中使用。
https://stackoverflow.com/questions/5888234
复制相似问题