⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlabengclass.cpp

📁 matlab混合编程(书中程序) 这个为第五章
💻 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 + -