2014-09-08 2 views
0

Я просто хочу вызвать две команды matlab из Python: команда fist просто добавляет папку и подпапки для нужного пути (addpath(genpath('c:/file1/file2'))), а вторая команда вызывает функцию, которую я хочу использовать (myfunction.m).вызов нескольких команд matlab из python с использованием os.system

Я всегда os.system("command"), когда мне нужно, чтобы вызвать функцию и os.system("command1 | command2"), когда я хотел назвать две функции, например, так что я пробовал:

os.system("matlab -r addpath(genpath('c:/file1/file2')) | matlab -r myfunction") 

Но очевидно, что это открывает два MatLab окна, первый для команда кулака и вторая для второй команды. Я хочу, чтобы они вызывали обе команды в одном окне один за другим. Однако, если я пытаюсь просто:

os.system("matlab -r addpath(genpath('c:/file1/file2')) -r myfunction") 

это не работает ... Он выполняет первую команду (addpath), но он не вызывает функцию ....

Что я делаю неправильно ?? Любая идея о том, как это сделать? Я читал много сообщений, но они были не очень полезны, даже если это очень простой случай.

Спасибо заранее, ребята! Я очень ценю вашу помощь

ответ

1

Идея заключается в том, чтобы выполнить следующие действия:

matlab.exe -r "addpath('c:\some\folder'); someFunction(); quit;" 

Теперь вы должны подключить что внутри os.system вызова, а также должным образом избежать кавычки ...

Например, вы можете попробовать:

>>> os.system("matlab.exe -nosplash -nodesktop -wait -r \"addpath('c:\\some\\folder'); someFunction(); quit();\"") 

(обратите внимание, что обратная косая черта и двойные цитаты экранируются, плюс я добавил опцию -wait так, что с ommand не возвращается, пока MATLAB не завершит выполнение).

+0

Спасибо sooo much @Amro !! Это работает отлично! :) Это дает командное окно matlab, отличное от обычного, но это не проблема :) – anna

+0

@ user2252592: это опция '-nodesktop', вы можете удалить ее, если хотите. Ниже приведены страницы документов для всех параметров командной строки: http://www.mathworks.com/help/matlab/ref/matlabwindows.html, http://www.mathworks.com/help/matlab/ref/matlabunix.html – Amro

 Смежные вопросы

  • Нет связанных вопросов^_^