4

一般的なリストを返すメソッドを持つアセンブリとして C# dll を開発しました - List<T>. 私はMatlabからこのメソッドを呼び出して、返された値をSystem.Int32[].

このタイプを Matlab 内でより自由に使用するために、このタイプを Matlab マトリックス (またはセル) に変換するにはどうすればよいですか?

さらに良いことに、Matlab によって呼び出された場合、dll が「Matlab スタイル」の配列を自動的に返すようにすることはできますか?

4

2 に答える 2

6

次の型の配列があるとSystem.Int32[]します (C# 関数によって返される)。

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

MATLAB 行列に変換するには、次のように簡単に実行できます。

M = double(arr)

またはより具体的に:

M = int32(arr)

結果:

>> whos
  Name      Size            Bytes  Class             Attributes

  M         1x5                20  int32                       
  arr       1x1                60  System.Int32[]              
于 2012-06-18T07:40:58.557 に答える
0

MATLAB Builder NE アドオンが問題を解決してくれることを願っています。それを試してみてください。

于 2012-06-15T08:33:26.793 に答える