现在的位置: 首页 > 综合 > 正文

matlab c++ 混合编程(3)——mwArray类操作

2018年04月03日 ⁄ 综合 ⁄ 共 866字 ⁄ 字号 评论关闭

转自:http://hi.baidu.com/the_sun_23/item/7b1f5e5073098bbf09be17a9

1. 复数数组的初始化

    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. 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


3. mwArray成员函数使用

    int NumberOfDimensions        返回矩阵维数

    int NumberOfElements            返回矩阵元素个数

    mwArray GetDimensions         返回一维矩阵,表示矩阵各维大小

    bool IsComplex                        判断是否复数矩阵


    PS:使用GetData前可先使用NumberOfElements确定元素个数,避免越界。


4. 字符串转换为mwArray

    char str[]="inFile.mat";

    mwArray inFile(str);

   

    则inFile则可以直接作为函数的输入参数进行传递。

抱歉!评论已关闭.