2011-05-03 33 views
1

我試圖創建一個使用.NET/Link協議調用Mathematica 8的C#庫(DLL)。具體來說,我用它來處理FFT等。現在我正在使用EvaluateToOutputForm並解析雙精度結果字符串。任何時候我嘗試使用Evaluate()和GetDoubleArray(),它會給出錯誤消息(例外),我試圖從錯誤的維度讀取數據。即使使用Evaluate(「2 + 2」),然後GetInteger()也會失敗,並顯示等待數據不是整數(基本上)。從MathLink連接獲取數據

EvaluateToOutputForm()的問題在於我解析的數字,比如Abs @ Fourier [data]對於非平凡(例如相當長)的輸入是錯誤的。我不知道發生了什麼問題。任何人都可以幫助我嗎?

回答

2

OutputForm僅用於查看結果。你真的想在這裏使用InputForm,因爲它保持了結果中數字的完整精度。 InputForm語法是很好定義和可解析的。 InputForm也不會像OutputForm那樣產生僞二維格式。

+0

嗯,我現在得到了GetDoubleArray()的工作(我忘記了WaitForAnswer),所以我認爲這是一個沒有爭議的地方。但是,謝謝,我不知道InputForm對於解析更好。但我仍然有「錯誤的答案」問題。我已經爲此打開了一張Wolfram支持票。感謝您的快速回答。 – PrinceBilliard 2011-05-03 23:23:15

+0

更新:事實證明我的解析是不正確的,並且MMA工作正常。 – PrinceBilliard 2011-05-04 17:51:51