加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2013-01-13 22:13:28)
标签:

杂谈

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

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则可以直接作为函数的输入参数进行传递。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有