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)); }