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 Files\MATLAB\R2008a\work\');设置该目录为启动目录;
userpath(\'reset\'); 设置启动目录为默认设置
②savepath; 进行保存
③addpath(genpath(‘F:\matlab\KeyPoints\FaceId_1.1a’)) // 添加绝对路径
addpath(genpath(‘FaceId_1.1a’)) //添加相对路径
④currentFolder = pwd;%取得当前路径 //添加当前路径
addpath(genpath(pwd))
/* **向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)); }