📄 exm12032_2.c
字号:
#include <stdlib.h> //
#include <stdio.h> //
#include <string.h>
#include "engine.h" //
#define BUFSIZE 512
int main()
{
Engine *ep;
mxArray *Pz = NULL, *result = NULL;
char buffer[BUFSIZE];
double zeta[4] = {0.2, 0.4, 0.8, 1.2 }; //
if (!(ep = engOpen("\0"))) //<12>
{
fprintf(stderr, "\nCan't start MATLAB engine\n");
return EXIT_FAILURE;
}
//----------------------------------------------------------------------------------------------------------------
//程序段1:
//----------------------------------------------------------------------------------------------------------------
Pz = mxCreateDoubleMatrix(1, 4, mxREAL); //
mxSetClassName(Pz, "z"); //
memcpy((void *)mxGetPr(Pz), (void *)zeta, sizeof(zeta));
//
engPutVariable(ep,"z",Pz); //
engEvalString(ep, "engzzy(z);"); //<25>
//
printf("按Enter键继续!\n\n"); //
fgetc(stdin); //
printf("程序段1运行已经结束。下面处于程序段2运行过程中!\n");
mxDestroyArray(Pz); //
engEvalString(ep, "close;"); //
//----------------------------------------------------------------------------------------------------------------
//程序段2:
//
//
//----------------------------------------------------------------------------------------------------------------
engOutputBuffer(ep, buffer, BUFSIZE);
//
//
while (result == NULL) {
char str[BUFSIZE];
printf("注意:\n");
printf("· 此界面上,可输入任何MATLAB指令。\n");
printf("· 若想退出,请对Exit变量赋任何数值。\n");
printf(">> ");
fgets(str, BUFSIZE-1, stdin); //
engEvalString(ep, str); //
printf(" %s", buffer); //
if ((result = engGetVariable(ep,"Exit")) == NULL)
//
printf("可继续运行!\n");
}
printf("运行结束!\n");
mxDestroyArray(result);
engClose(ep);
return EXIT_SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -