小编use*_*427的帖子

将数据从Matlab Application Server传输到F#

我试图弄清楚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?

.net matlab f#

2
推荐指数
1
解决办法
198
查看次数

标签 统计

.net ×1

f# ×1

matlab ×1