我试图弄清楚Matlab的.net-Application服务器和F#-scripting之间的互操作性.目前,我遇到了数据传输问题.如果我在F#中打开一个新的Matlab-Instance:-interactive:
#I @"C:\Program Files\MATLAB\R2010a\bin\win64";;
#r @"MLApp.dll";;
let matlab=new MLApp.MLAppClass();;
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个Matlab-Array:
matlab.Execute("a=[1 2 3 4 5;6 7 8 9 10]");;
Run Code Online (Sandbox Code Playgroud)
将Matlab阵列传输到.net的下一步是
let b =matlab.GetVariable("a","base");;
Run Code Online (Sandbox Code Playgroud)
这是问题开始的时候.变量'b'将是Type'object',仅提供.net-object类型的通用接口.如何从此变量中检索数字数组?有没有办法将downcast应用于'array float'?
编辑:
好吧,还有一件事我不明白:应用向下转换后,数组的类型为array2D,float [,].但是数组显示如下:
arr;;
val it : float [,] = [[1.0; 2.0; 3.0]
[4.0; 5.0; 6.0]]
Run Code Online (Sandbox Code Playgroud)
对于矩形阵列,我习惯得到类似的东西
arr;;
= [|[|1.0; 2.0; 3.0|]
[|4.0; 5.0; 6.0|]|]
Run Code Online (Sandbox Code Playgroud)
这些类型之间的区别在哪里?为什么我不能将数组切片应用于float [,]类型的arr?
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |