1. 程式人生 > >mwArray與C++介面

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則可以直接作為函式的輸入引數進行傳遞。