mwArray與C++介面
2.1. 複數陣列的初始化(由C到matlab)
double rdata[4] = {1.0, 2.0, 3.0, 4.0};
double idata[4] = {10.0, 20.0, 30.0, 40.0};
mwArray a(2, 2, mxDOUBLE_CLASS, mxCOMPLEX);
a.Real().SetData(rdata, 4);
a.Imag().SetData(idata, 4);
對應從mwArray中獲取元素
a.Real().GetData(buffer,len);
a.Imag().GetData(buffer,len);
2.2. cell元組陣列的獲取
由於mwArray索引運算子()直接返回mwArray型別,因此可以直接宣告通過索引獲取元組內的矩陣值。
eg: a={[1],[2],[1 2;3 4];[1 3;2 4],[1],[2]};
mwArray b=a(2); //b=[1 3;2 4];
mwArray c=a(5); //c=[1 2;3 4];
PS:mwArray中陣列為按列排,因此[1 3;2 4]的索引號為2
2.3. mwArray成員函式使用
int NumberOfDimensions 返回矩陣維數
int NumberOfElements 返回矩陣元素個數
mwArray GetDimensions 返回一維矩陣,表示矩陣各維大小
bool IsComplex 判斷是否複數矩陣
PS:使用GetData前可先使用NumberOfElements確定元素個數,避免越界。
2.4. 字串轉換為mwArray
char str[]="inFile.mat";
mwArray inFile(str);
則inFile則可以直接作為函式的輸入引數進行傳遞。