2014-01-28 7 views
1

У меня есть небольшой фрагмент кода, который вызывает функцию matlab (сохраняется в собственном .m-файле). Пользователь может выбрать функцию matlab для вызова, и она может быть или не быть в папке по умолчанию MATLAB (~/Documents/MATLAB).Вызов функции Matlab из C++

В случае, если он не находится в пути поиска по умолчанию, я хотел бы добавить папку, содержащую функцию, в путь поиска 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

Вы пропускаете второй закрывание )

std::string addPathCommand = "/Applications/MATLAB_R2011b.app/bin/matlab -r \"addpath(genpath('"+ matlabFunctionPath + "'))\""; 
Смежные вопросы