matlab C++
大家好,我用C++编写个程序调用matlab进行多元线性回归,但是多元线性回归时多于5组数engGetVariable就没有返回值了,请问大虾们指导指导我呀,程序代码如下:
BOOL reg(double a[5],double b[5],double c[5],double res[6])
{
Engine *ep;
mxArray *T = NULL, *result = NULL;
if (!(ep = engOpen("\0"))) {
fprintf(stderr, "\nCan't start MATLAB engine\n");
return EXIT_FAILURE;
}
T = mxCreateDoubleMatrix(1,5, mxREAL);
memcpy((void *)mxGetPr(T), (void *)a, sizeof(a));
engPutVariable(ep, "x1", T);
memcpy((void *)mxGetPr(T), (void *)b, sizeof(b));
engPutVariable(ep, "x2", T);
memcpy((void *)mxGetPr(T), (void *)c, sizeof(c));
engPutVariable(ep, "x3", T);
if(0==engEvalString(ep, "x=[ones(5,1),x2',x3'];"))
engEvalString(ep, "[b,bint] =regress(x1',x)");
result = engGetVariable(ep,"b")
double *res4=mxGetPr(result);//得到回归矩阵的系数信息,组数大于5时engGetVariable就没有返回值了
for(int i=0;i<3;i++)
{
res7[i]=res4[i];
}
mxDestroyArray(T);
engEvalString(ep, "close;");
}