Я знаю, что могу запустить исполняемый файл в MATLAB с помощью команды !example.exe
или system(example.exe)
, как указано в this question. Однако, когда я хочу передать аргументы программе C++, все, что я набираю, берется как строка. Как использовать переменные MATLAB?Запуск программы на C++ из сценария MATLAB с использованием переменных MATLAB в качестве аргументов
Например, скажем example.exe
была следующая программа:
int main(int argc, char *argv[]){
std::cout << argv[1] << std::endl;
}
Когда я называю это из MATLAB, как !example.exe hi
, я получаю выход hi
.
Но что, если мой сценарий MATLAB были на самом деле:
hi = 'HELLO!';
!example.exe hi
Мой выход еще hi
, но я хочу, чтобы это было HELLO!
.
Как это сделать?
Заранее благодарен!
Спасибо за ответ; это работает, но можете ли вы (или кто-либо) прокомментировать 'system()' vs. 'eval()'? В чем разница/что является предпочтительной функцией? – marcman
@marcman 'eval()' может запускать любую команду Matlab. 'system()' специально для обхода ОС. В вашем случае я не думаю, что это важно, какой из них вы используете. – shoelzer
Обычно лучше [избегать 'eval'] (http://blogs.mathworks.com/loren/2005/12/28/evading-eval/) –