我有一个小的代码片段,调用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会启动,但是新地址不会添加到搜索路径中。我在这里做错了什么?
感谢您的帮助。
最佳答案
您缺少第二个结束)
std::string addPathCommand = "/Applications/MATLAB_R2011b.app/bin/matlab -r \"addpath(genpath('"+ matlabFunctionPath + "'))\"";