标题:
VC++调用Matlab的程序运行错误求救!
[打印本页]
作者:
dairuina
时间:
2006-10-16 16:32
标题:
VC++调用Matlab的程序运行错误求救!
我这里有个例子能运行,一但我将自己的代码加进去就得不到值?
char bufferX[301];
double prul1M[20]={-40,0,4,0,
40,-5.5,0,0.5,
0,5,-4,0,
0,0.5,0,-0.5,
1,1,1,1,
};
double BM[5]={0,0,0,0,1};
if(!(ep=engOpen(NULL))){
MessageBox((HWND)NULL,(LPSTR)"Can't start Matlab engine",(LPSTR)"Engwindemo.c",MB_OK);
exit(-1);
}
engSetVisible(ep,0);
p=mxCreateDoubleMatrix(5,4,mxREAL);
memcpy((char *)mxGetPr(p),(char *)prul1M,20*sizeof(double));
b=mxCreateDoubleMatrix(5,1,mxREAL);
memcpy((char *)mxGetPr(b),(char *)BM,5*sizeof(double));
engPutVariable(ep,"P",p);
engPutVariable(ep,"B",b);
engEvalString(ep,"x=inv(P)*B");
engOutputBuffer(ep,bufferX,300);
engEvalString(ep,"whos");
MessageBox((HWND)NULL,(LPSTR)bufferX,(LPSTR)"Matlab-whos",MB_OK);
x=engGetVariable(ep,"x");
engClose(ep);
if(x==NULL)
{
MessageBox((HWND)NULL,(LPSTR)"Get array failed",(LPSTR)"Engwindemo.c",MB_OK);
}
else
{
MessageBox((HWND)NULL,(LPSTR)bufferX,(LPSTR)"Engwindemo.c",MB_OK);
}
这是我自己加的代码部分,请高手帮帮忙阿!!谢谢了!!
其实核心部分就是求解一个非齐次方程的解。系数矩阵P,B是等号右端项,为一列向量,这两个都能附上值,可是,x就没有值了。高手们到底怎么回事?这个程序运行并没有提示任何错误,只是结果显示的是“Get array failed”。
作者:
Nothing
时间:
2006-10-16 16:51
Matlab我没有用过,帮你顶。
作者:
dairuina
时间:
2006-10-16 18:07
标题:
谢谢
谢谢了,希望高手帮忙
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/)
Powered by Discuz! 6.0.0