当前位置:编程学习 > Matlab >>

C++调用matlab时 数组转换成矩阵怎么处理

c++的数据是先行再列 但是matlab是先列再行 本来认为在matlab里转置就可以了 但是好像结果不对 改怎么做呢 //从c++给matlab传数据 const mwSize dims[3]={IMAGE_HEIGHT,IMAGE_WIDTH,3}; mxArray *A=mxCreateNumericArray(3,dims,mxUINT8_CLASS,mxREAL); unsigned char* pchar=(unsigned char*)mxGetData(A); for(int i=0;i<dataLength;i++) { pchar[i]=lpdata[i]; } //把结果从matlab传回c++ mxArray *C=mxCreateNumericArray(3,dims,mxUINT8_CLASS,mxREAL); mlfFaceMatch(1,&C,A); //调用m文件函数 memcpy(lpdata,mxGetPr(C),3*IMAGE_WIDTH*IMAGE_HEIGHT*sizeof(unsigned char)); 在matlab的代码里我用了转置 但是好像还是不对 麻烦大家给看看 谢谢
追问:你看是不是这个地方有问题啊
const mwSize dims[3]={IMAGE_HEIGHT,IMAGE_WIDTH,3};
	  mxArray *A=mxCreateNumericArray(3,dims,mxUINT8_CLASS,mxREAL);
	 在申请三维数组的时候的顺序有没有问题啊
答案:请问在MATLAB中的单元数组能整体的将其转换成矩阵码?例如有一个单元数组是注意矩阵和数组转换时,矩阵编号是按列编号的,举这个例子是让你更清楚些!
其他:const mwSize dims[3]={IMAGE_HEIGHT,IMAGE_WIDTH,3};
	  mxArray *A=mxCreateNumericArray(3,dims,mxUINT8_CLASS,mxREAL); 

上一个:matlab的一个程序疑问
下一个:我用MATLAB做基于NCD优化的PID控制,仿真程序包括:主程序,M函数程序和Simulink子程序,主程序不明白

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,