📄 matlabengclass.cpp
字号:
// MatlabEngClass.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "MatlabEng.h"
#define message(x) printf(x "\n\n")
int main(int argc, char* argv[])
{
CMatlabEng matlab;
//open new matlab session
message("启动MATLAB引擎,请稍候...");
matlab.Open(NULL);
message("准备在任务栏隐藏MATLAB图标");
matlab.SetVisible(FALSE);
message("单击任意键继续");
getch();
message("在任务栏显示MATLAB图标");
matlab.SetVisible(TRUE);
message("单击任意键继续");
getch();
mxArray *T = NULL;
double time[10] = { 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 };
//生存矩阵
T = mxCreateDoubleMatrix(1, 10, mxREAL);
memcpy((void *)mxGetPr(T), (void *)time, sizeof(time));
//发送矩阵到MATLAB引擎
message("Send matrix T to matlab");
matlab.PutVariable("T", T);
//通过MATLAB引擎执行MATLAB命令
matlab.EvalString("D = .5.*(-9.8).*T.^2;");
//绘图
message("Plot(T, D)");
matlab.EvalString("plot(T,D);");
matlab.EvalString("title('Position vs. Time for a falling object');");
matlab.EvalString("xlabel('Time (seconds)');");
matlab.EvalString("ylabel('Position (meters)');");
matlab.EvalString("grid;");
//pause to see results
message("Press any key to continue");
getch();
//释放矩阵T所点的内存空间
mxDestroyArray(T);
//显示MATLAB的图形输出能力
message("显示MATLAB的图形输出能力!");
matlab.EvalString("x=-8:0.5:8;");
matlab.EvalString("y=x;");
matlab.EvalString("[Y,X]=meshgrid(y,x);");
matlab.EvalString("R=sqrt(X.^2+Y.^2)+eps;");
matlab.EvalString("Z=2*sin(R)./R;");
matlab.EvalString("surf(X,Y,Z);");
//等待输入任意键,以观察图形输出结果
getch();
//关闭MATLAB引擎
matlab.Close();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -