2011-05-04 54 views
0

我還有一個。我嘗試在C#中使用Mathematica MathLink中的ml.ComplexType = System.Type.GetType("Complex");,但是當我嘗試使用GetComplexArray讀取數字時,它拋出了一個異常,聲明我必須使用方法IMathLink.SetComplexType(),該方法似乎不存在。在MathLink中設置ComplexType

有沒有辦法做到這一點不解析字符串,因爲我不能爲我的生活做到這一點正確嗎?

+0

請允許我歡迎您來到StackOverflow,並提醒我們通常在這裏做的三件事:1)當您得到幫助時,嘗試給予它**在您的專業領域回答問題** 2)['閱讀常見問題' ](http://tinyurl.com/2vycnvr)3)當你看到好的問答時,用['灰色三角形](http://i.imgur.com/kygEP.png)系統的可信度基於用戶通過分享知識獲得的聲譽。還記得接受更好地解決您的問題的答案,如果有的話,['通過按複選標記符號](http://i.imgur.com/uqJeW.png) – 2011-05-04 18:44:49

+0

您是否檢查過(http:// reference。 wolfram.com/mathematica/NETLink/ref/net/Wolfram.NETLink.IMathLink.ComplexType.html)? – 2011-05-04 18:49:04

回答

1

對於其他人的參考,我發現這個問題的答案一個我自己。

你要做的就是創建一個虛擬實例具有必要的屬性/方法(如System.Numerics.Complex)任何類,這裏命名myVar。現在假設mlIKernelLink實例,調用

ml.ComplexType = myVar.GetType(); 

然後可以使用ml.GetComplex()ml.GetComplexArray()

1

SetComplexType的文檔位於:http://reference.wolfram.com/mathematica/NETLink/ref/SetComplexType.html。您也可以通過將「NETLink/ref/SetComplexType」粘貼到Mathematica文檔中心來查找。這兩個消息來源指出,必須執行Needs["NETLink]」在數學才能使用。

+0

我正在嘗試在C#中執行此操作。我在MathLink中將SetComplexType發送給MMA嗎? – PrinceBilliard 2011-05-04 18:56:46

+0

雖然我感謝你的回答,但它是用於設置Mathematica中的類型。我回答我自己的問題完全用C#來完成。 – PrinceBilliard 2011-05-07 00:57:52