c 向MATLAB傳遞字串陣列

2021-07-06 05:32:49 字數 1783 閱讀 4745

通過matlab編寫功能函式,編譯成.dll,供c#中呼叫。由於在matlab中編譯的函式中暴露出的引數中是多個檔案的物理路徑(即字串陣列做引數)。而在c#中獲取的檔案物理路徑也是通過string字串陣列存起來的,而matlab中一般是通過mwcellarray存放的。所以兩者存在乙個轉化,現將本人經驗總結如下,供各位看官參考。

c#中:

string infilespath = new string[10];

string outpath = "c:\\users\\***\\desktop\\回歸分析\\testdata";

infilespath[0] = "g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[1] = "g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[2] = "g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[3] ="g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[4] = "g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[5] = "g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[6] = "g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[7] = "g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[8] = "g:\\ndvi\\ndvi\\2000-02.tif";

infilespath[9] = "g:\\ndvi\\ndvi\\2000-02.tif";

//以上為示例資料,通過string存起來

mwcellarray cellarray = new mwcellarray(1, infilespath.length);

for (int i = 0; i < infilespath.length; i++)

cellarray[1, i + 1] =infilespath[i];

//此處一定要注意,mwcellarray作為matlab中的陣列,下標從1開始,infilespath為c#中的字串陣列,下標從0開始。

mwchararray outpath1 = new mwchararray(); outpath1 = outpath;

int inpathlen = infilespath.length;

mwnumericarray inpathlen1 = new mwnumericarray();

inpathlen1 = inpathlen;

//reganalysisclass為matlab中編寫的類,reanalysis方法是實現特定功能函式,共有三個引數,字串長度,cell陣列,輸出檔案路徑

reganalysisclass reganalysisclassobject = new reganalysisclass();

reganalysisclassobject.reanalysis(inpathlen1, cellarray, outpath1);

matlab中:(只擺一部分)

function reanalysis(inpatharraylen,inpatharray,outpath)

%讀取檔案目錄下的所有輸入影像路徑

for i=1:inpatharraylen

ppp=inpatharray;

[indexdata(:,:,i), r,info] =getgeotiff(ppp);

end

MATLAB字串陣列

4.1 字串陣列 4.1.1 字串入門 例 4.1.1 1 先請讀者實際操作本例,以體會數值量與字串的區別。clear 清除所有記憶體變數 a 12345.6789 給變數 a 賦數值標量 class a 對變數 a 的類別進行判斷 a s size a 數值陣列 a 的 大小 a 1.2346e ...

c函式傳遞字串

把具有相同型別的若干變數按有序的形式組織起來,這些按序排列的同類資料元素的集合稱為陣列。按陣列元素的型別不同,陣列又可分為數值陣列 字元陣列 指標陣列 結構陣列等各種類別,因此,字元陣列是陣列的一種。字元陣列實際上是一系列字元的集合,也就是字串 string 由此可得 在函式中傳遞乙個字串與傳遞乙個...

C 字串陣列 字串陣列輸出

在c 中不僅可以用string定義字串變數,也可以用string定義字串陣列。string array 3 表示定義乙個字串陣列,這個陣列包含3個字串元素。string array 3 讀者在使用字串陣列時應該注意以下幾點 在乙個字串陣列中包含若干個元素,每個元素相當於乙個字串變數。並不要求每個字串...