我試圖讓我的手變得與Matlab的.net-應用服務器和F#腳本之間的互操作性變得骯髒。 目前,我遇到了數據傳輸問題。 如果我在F#-interactive打開一個新的Matlab的實例:將數據從Matlab應用服務器傳輸到F#
#I @"C:\Program Files\MATLAB\R2010a\bin\win64";;
#r @"MLApp.dll";;
let matlab=new MLApp.MLAppClass();;
然後我創建了一個Matlab的數組:
matlab.Execute("a=[1 2 3 4 5;6 7 8 9 10]");;
下一步的Matlab的陣列轉移到.NET會be
let b =matlab.GetVariable("a","base");;
這是問題出現的時間。變量'b'將是類型'對象',僅提供.net對象類型的通用接口。 如何從這個變量中獲取一個數組數組?有什麼辦法可以將downcast應用到'數組浮點'?
編輯:
好,有一兩件事我不理解:在施加所述向下轉換陣列後具有類型array2D,浮[,]。但會顯示這樣的數組:
arr;;
val it : float [,] = [[1.0; 2.0; 3.0]
[4.0; 5.0; 6.0]]
對於矩形陣列,我習慣了得到這樣的
arr;;
= [|[|1.0; 2.0; 3.0|]
[|4.0; 5.0; 6.0|]|]
哪裏是這些類型之間的區別?爲什麼我不能將數組切片應用於float [,]類型的arr?
是的,謝謝!通過強制類型float [,]它可以工作! – user1047427