楼主:
ofox6072 (knife)
2014-08-23 18:02:02我想要用mex做阵列相加再回传到matlab
程式如下
%%%这是matlab code
mex add.c;
b = {1.1,1.1}; c = {2.2,2.2};
a = add(b, c);
//这是 add.mex
#include "mex.h"
void mexFunction(int nlhs,mxArray *plhs[], int nrhs,const mxArray *prhs[])
{
double *a, *b, *c;
int i;
plhs[0] = mxCreateDoubleMatrix(1, 2, mxREAL);
a = mxGetPr(plhs[0]);
b = mxGetPr(prhs[0]);
c = mxGetPr(prhs[1]);
for(i=0;i<2;i++){
a[i]=b[i]+b[i];
}
}
以上我先把阵列大小写死,但是我没有得到正确的a值a={3.3,3.3},而是得到
a={1.669273906000000e-315,1.669273906000000e-315},请问我错在哪里
感谢
楼主: ofox6072 (knife) 2014-08-23 18:30:00
OK,但是我觉得应该是指标有问题他给出的答案感觉像是内存位置如过是a[i] = b[i] + b[i],也应该是a={2.2,2.2}请问你说得的cell是什么意思