我试图让我的手变得与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