c++和matlab应用

c++中添加一个头文件 include “engine.h”后可以使用matlab引擎提供的一些常用函数。

engOpen()  、engClose()

engSetVisible()

engGetVariable()

engPutVariable()

engEvalString()

Engine *ep = engOpen();   //定义matlab引擎

engSetVisible(ep,0);     //设置不可见

engPutVariable(ep,"aa",a);     //把变量a放入matlab工作空间,工作空间名称aa

 engEvalString(ep, "cd F:\Project1");     //切换工作路径

/********************matlab怎么用userpath设置路径*************************/

①userpath('D :Program FilesMATLABR2008awork');设置该目录为启动目录;

userpath('reset');  设置启动目录为默认设置

②savepath;   进行保存

③addpath(genpath(‘F:matlabKeyPointsFaceId_1.1a’))   // 添加绝对路径

addpath(genpath(‘FaceId_1.1a’))   //添加相对路径

 ④currentFolder = pwd;%取得当前路径   //添加当前路径

addpath(genpath(pwd))

查看Matlab7.0的搜索路径
     可通过菜单命令和path、genpath命令函数两种方法来查看搜索路径
设置Matlab7.0的搜索路径
    命令行中输入editpath或pathtool命令或通过"file-set path"菜单,进入"set path" 对话框。
    在命令行中执行 path(path, 'E:WorkspaceOtherMatlab');
    在命令行中执行 addpath e:WorkspaceOthersMatlab -end, 将新的目录加到整个搜索路径的末尾。
     如果将end改为begin,可以将新的目录加到整个搜索路径的开始。
/*
**向matlab工作空间存放数据
*varName参数:存放的变量名称
*mat参数:存放的数据,提前设置好的数据
*M参数:表示M行M列矩阵
*engine参数:是引擎
*/
int SetMat(char *varName, void *mat, int M, Engine *engine)
{
	mxArray *matArray = mxCreateDoubleMatrix(M, M, mxREAL);
	memcpy(mxGetPr(matArray), mat, M*M*sizeof(double));
	int status = engPutVariable(engine, VarName, matArray);
	mxDestroyArray(matArray);
	return status;
}

  

/*
**从matlab工作空间获取名称为varName变量的数据
*varName参数:变量名称
*mat参数:存放的数据
*M参数:表示M行M列矩阵
*engine参数:是引擎
*/

void GetMat(char *VarName, void *mat, int M, Engine *engine)
{
	memcpy(mat, mxGetPr(engGetVariable(engine, VarName)), M*M*sizeof(double));
}

  

原文地址:https://www.cnblogs.com/mathyk/p/9301583.html