我已經開發了C#dll作爲程序集,它有一個方法返回一個通用列表 - List<T>
。 我從Matlab調用這個方法,得到返回值爲System.Int32[]
。將.net System.Int32 []轉換爲matlab矩陣
如何將此類型轉換爲Matlab矩陣(或單元格)以便在Matlab中更自由地使用它?
更好的是,我可以讓DLL自動返回'Matlab風格'數組,如果它被Matlab調用?
我已經開發了C#dll作爲程序集,它有一個方法返回一個通用列表 - List<T>
。 我從Matlab調用這個方法,得到返回值爲System.Int32[]
。將.net System.Int32 []轉換爲matlab矩陣
如何將此類型轉換爲Matlab矩陣(或單元格)以便在Matlab中更自由地使用它?
更好的是,我可以讓DLL自動返回'Matlab風格'數組,如果它被Matlab調用?
MATLAB Builder NE附加組件有望解決您的問題。嘗試一下。
假設我們有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[]
到最後一句:我懷疑一個函數可能會以靜態語言返回一個基於調用者的不同類型。我也會說這是一個相當混亂的設計。相反,我會做兩種不同的方法,例如'getList'和'getMatlabMatrix'。 – phg