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

📄 matlab2.cpp

📁 vc与matlab联调的例子
💻 CPP
字号:
#include <iostream>
#include <math.h>
#include "engine.h"
using namespace std;
void main()
{
	const int N = 50;
	double x[N],y[N];
	int j = 1;
	for (int i=0; i<N; i++) //计算数组x和y
	{
		x[i] = (i+1);
		y[i] = sin(x[i]) + j * log(x[i]); //产生-之间的随机数赋给xx[i];
		j *= -1;
	}
	Engine *ep; //定义Matlab引擎指针。
	if (!(ep=engOpen(NULL))) //测试是否启动Matlab引擎成功。
	{
		cout <<"Can't start Matlab engine!" <<endl;
		exit(1);
	}
	
	//定义mxArray,为行,N列的实数数组。
	mxArray *xx = mxCreateDoubleMatrix(1,N, mxREAL); 
	mxArray *yy = mxCreateDoubleMatrix(1,N, mxREAL); //同上。
	
	memcpy(mxGetPr(xx), x, N*sizeof(double)); //将数组x复制到mxarray数组xx中。
	memcpy(mxGetPr(yy), y, N*sizeof(double)); //将数组x复制到mxarray数组yy中。
	
	engPutVariable(ep, "xx",xx); //将mxArray数组xx写入到Matlab工作空间,命名为xx。
	engPutVariable(ep, "yy",yy); //将mxArray数组yy写入到Matlab工作空间,命名为yy。
	
	//向Matlab引擎发送画图命令。plot为Matlab的画图函数,参见Matlab相关文档。
	engEvalString(ep, "plot(xx, yy); ");
	
	mxDestroyArray(xx); //销毁mxArray数组xx和yy。
	mxDestroyArray(yy); 
	
	cout <<"Press any key to exit!" <<endl;
	cin.get();
	engClose(ep); //关闭Matlab引擎。
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -