Сценарий Matlab - запуск внешней команды (неблокирование) - PullRequest
0 голосов
/ 17 марта 2011

Из скрипта в Matlab мне нужно запустить внешнюю команду.Обычно это делается с system , но выполнение скрипта блокируется до завершения команды.Есть ли способ выполнить команду из сценария без блокировки выполнения?

РЕДАКТИРОВАТЬ: ОС Windows Server.

Ответы [ 3 ]

2 голосов
/ 17 марта 2011

На окнах нужно использовать start

system('start notepad.exe');
2 голосов
/ 17 марта 2011

Это может быть излишним, но если у вас есть полная установка matlab, вы можете использовать Parallel Computing toolbox для запуска команды в отдельном потоке. Это на самом деле довольно легко сделать, основной синтаксис будет:

obj = createJob();
set( obj, 'FileDependencies', {<list .m files used here>, 'ExampleFileFunc.m'});
task = createTask(obj, @ExampleFileFunc, 1, {4});

submit(obj);                   

waitForState(task,'finished');
varargout = get(task,'OutputArguments');

{4} - это количество выходов из ExampleFileFunc.

1 голос
/ 17 марта 2011

Вы можете использовать bang (!), А затем команду, например

 !vi

. И чтобы запустить его без блокировки выполнения, это будет

 !vi &

Программа покажетвверх на отдельном экране, и вы вернетесь к окну команд, чтобы продолжить выполнение операторов языка MATLAB.Он делает то же самое для скрипта, так что я думаю, это то, что вы хотите использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...