将.net System.Int32 []转换为matlab矩阵

mat*_*avi 4 c# matlab

我已经开发了C#dll作为程序集,它有一个返回通用列表的方法 - List<T>.我从Matlab调用此方法并获取返回值System.Int32[].

如何将此类型转换为Matlab矩阵(或单元格)以便在Matlab中更自由地使用它?

更好的是,如果被Matlab调用,我可以让dll自动返回'Matlab style'数组吗?

Amr*_*mro 6

假设我们有以下类型的数组System.Int32[](由C#函数返回):

arr = NET.createArray('System.Int32',5);
for i=1:5
    arr.Set(i-1, i);
end
Run Code Online (Sandbox Code Playgroud)

现在要转换为MATLAB矩阵,我们可以简单地做到:

M = double(arr)
Run Code Online (Sandbox Code Playgroud)

或者更具体:

M = int32(arr)
Run Code Online (Sandbox Code Playgroud)

结果:

>> whos
  Name      Size            Bytes  Class             Attributes

  M         1x5                20  int32                       
  arr       1x1                60  System.Int32[]              
Run Code Online (Sandbox Code Playgroud)