本文主要是介绍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则可以直接作为函数的输入参数进行传递。
这篇关于matlab c++ 混合编程(3)——mwArray类操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!