www.pudn.com > matlab8.zip > engexam.c
#include#include #include #include "engine.h" int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { Engine *ep; mxArray *P=NULL,*r=NULL; char buffer[301]; double poly[4]={1,0,-2,5}; /*三次多项式的系数*/ /*启动本机MATLAB引擎,如果出错则退出程序。 如想启动远程主机上的MATLAB,则用相应主机名代替\0*/ if (!(ep=engOpen("\0"))) { fprintf(stderr,"\nCan't start MATLAB engine\n"); return EXIT_FAILURE;} /*创建变量P,将poly变量中定义的多项式系数值拷贝至该变量P*/ P=mxCreateDoubleMatrix(1,4,mxREAL); /*给变量P取名为p,将P传递到引擎空间,p将被运用于MATLAB表达式中*/ mxSetName(P,"p"); memcpy((char *)mxGetPr(P),(char *)poly,4*sizeof(double)); engPutArray(ep,P); /*利用MATLAB求解多项式根,并写至缓冲区*/ engOutputBuffer(ep,buffer,300); engEvalString(ep,"r=roots(p)"); /*将缓冲区中的内容输出屏幕窗口,关闭MATLAB引擎,释放指针P。*/ MessageBox(NULL,buffer,"Engexam.c--多项式x^3-2x+5的根",MB_OK); engClose(ep); mxDestroyArray(P); return EXIT_SUCCESS; }