06.08.2013 Views

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

#define BUFSIZE 512<br />

int main()<br />

{<br />

Engine *ep;<br />

mxArray *Pz = NULL, *result = NULL;<br />

char buffer[BUFSIZE];<br />

double zeta[4] = {0.2, 0.4, 0.8, 1.2 }; //MATLAB 环境外数据示例<br />

if (!(ep = engOpen("\0"))) //开启本地 MATLAB 引擎,如失败给出警告。<br />

{<br />

fprintf(stderr, "\nCan't start MATLAB engine\n");<br />

return EXIT_FAILURE;<br />

}<br />

//----------------------------------------------------------------------------------------------------------------<br />

//程序段 1:<br />

//----------------------------------------------------------------------------------------------------------------<br />

Pz = mxCreateDoubleMatrix(1, 4, mxREAL);<br />

mxSetClassName(Pz, "z");<br />

memcpy((void *)mxGetPr(Pz), (void *)zeta, sizeof(zeta));<br />

engPutVariable(ep, Pz);<br />

engEvalString(ep, "engzzy(z);"); //<br />

printf("按 Enter 键继续!\n\n");<br />

fgetc(stdin);<br />

printf("程序段 1 运行已经结束。下面处于程序段 2 运行过程中!\n");<br />

mxDestroyArray(Pz);<br />

engEvalString(ep, "close;");<br />

//----------------------------------------------------------------------------------------------------------------<br />

//程序段 2:<br />

//<br />

//<br />

//---------------------------------------------------------------------------------------------------------------engOutputBuffer(ep,<br />

buffer, BUFSIZE);<br />

while (result == NULL) {<br />

char str[BUFSIZE];<br />

printf("注意:\n");<br />

printf("· 此界面上,可输入任何 MATLAB 指令。\n");<br />

printf("· 若想退出,请对 Exit 变量赋任何数值。\n");<br />

printf(">> ");<br />

fgets(str, BUFSIZE-1, stdin);<br />

engEvalString(ep, str);<br />

printf(" %s", buffer);<br />

14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!