从c ++调用Matlab函数

时间:2014-01-28 01:04:10

标签: c++ matlab shell

我有一个小代码片段,可以调用matlab函数(保存在自己的.m文件中)。用户可以选择要调用的matlab函数,它可能在或不在MATLAB的默认文件夹中(〜/ Documents / MATLAB)。

如果它不在默认搜索路径中,我想将函数的包含文件夹添加到MATLAB的搜索路径中。当我尝试使用终端(我在MAC上)时,使用此命令:

/Applications/MATLAB_R2011b.app/bin/matlab -r "addpath(genpath('/Folder/Address/Here'))"

MATLAB启动,我可以看到新地址已成功添加到搜索路径中。

但是,当我尝试使用以下命令通过C ++程序运行此命令时:

std::string  matlabFunctionPath = "/Folder/Address/Here"
std::string  addPathCommand = "/Applications/MATLAB_R2011b.app/bin/matlab -r \"addpath(genpath('"+ matlabFunctionPath + "')\"";
::popen(shellCommand.c_str(), "r"));

MATLAB确实已启动,但新地址未添加到搜索路径中。我在这做错了什么?

我很感激帮助。

1 个答案:

答案 0 :(得分:1)

您错过了第二次结束)

std::string  addPathCommand = "/Applications/MATLAB_R2011b.app/bin/matlab -r \"addpath(genpath('"+ matlabFunctionPath + "'))\"";