
C++调用matlab时 数组转换成矩阵怎么处理
c++的数据是先行再列但是matlab是先列再行本来认为在matlab里转置就可以了但是好像结果不对改怎么做呢//从c++给matlab传数据constmwSizedim...
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的代码里我用了转置 但是好像还是不对 麻烦大家给看看 谢谢 展开
本来认为在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的代码里我用了转置 但是好像还是不对 麻烦大家给看看 谢谢 展开
2个回答
展开全部
请问在MATLAB中的单元数组能整体的将其转换成矩阵码?例如有一个单元数组是注意矩阵和数组转换时,矩阵编号是按列编号的,举这个例子是让你更清楚些!
追问
你看是不是这个地方有问题啊
const mwSize dims[3]={IMAGE_HEIGHT,IMAGE_WIDTH,3};
mxArray *A=mxCreateNumericArray(3,dims,mxUINT8_CLASS,mxREAL);
在申请三维数组的时候的顺序有没有问题啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询