[問題] 使用mex回傳array到matlab
我想要用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},請問我錯在哪裡
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.20.6
※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1408788124.A.FBF.html
推
08/23 18:08, , 1F
08/23 18:08, 1F
→
08/23 18:17, , 2F
08/23 18:17, 2F
→
08/23 18:27, , 3F
08/23 18:27, 3F
→
08/23 18:28, , 4F
08/23 18:28, 4F
→
08/23 18:30, , 5F
08/23 18:30, 5F
→
08/23 18:31, , 6F
08/23 18:31, 6F
→
08/23 18:32, , 7F
08/23 18:32, 7F
→
08/23 18:34, , 8F
08/23 18:34, 8F
→
08/23 20:34, , 9F
08/23 20:34, 9F
→
08/23 20:34, , 10F
08/23 20:34, 10F
→
08/23 21:00, , 11F
08/23 21:00, 11F
→
08/23 21:02, , 12F
08/23 21:02, 12F
→
08/24 06:25, , 13F
08/24 06:25, 13F
→
08/24 06:25, , 14F
08/24 06:25, 14F