2012-01-16 3 views
2

После некоторых больших советов, как это: suppress start message of Matlab я теперь использовать эту линию, чтобы выполнить Matlab сценарий из моего предпочтительного редактора, не запуская весь Matlab машину:Держите окна участка Matlab видны, при выполнении сценария из терминала

matlab -nosplash -nojvm -logfile /tmp/matlab-log -wait < "$(FilePath)" \ 
> /dev/null 2 && sed '1,9d' /tmp/matlab-log 

-nodisplay переключатель опускается, поскольку я хочу видеть вывод графика.

Однако при использовании вышеприведенной строки для вызова сценария, который создает график, появляется окно графика, а затем сразу исчезает.

Как сохранить окно графика видимым, считая выше строки выполнения?


Я знаю, что я мог бы добавить waitforbuttonpress; в каждом участке сценария, но ищете что-то автоматическое без осложняющих выполнение построчно слишком много

ответ

0

Попробуйте использовать команду uiwait в сценарии.

f = figure(); 
uiwait(f); 
+0

Это похоже на добавление 'waitforbuttonpress;' внутри скрипта. Я ищу подход без изменения сценария Matlab. – theta

0

Предположительно, ваш сценарий содержит exit или quit заявление, которое является тем, что вызывает MATLAB закрыть. Вам нужно будет перехватить это и дождаться нажатия клавиши, прежде чем уйти.

MATLAB запускает finish script, прежде чем он закрывается, поэтому вы можете использовать это. Но это должно быть на пути.

Простите меня за вопрос, но есть ли веская причина, по которой вы не хотите использовать редактор MATLAB?

+0

Нет, скрипт не содержит выхода или выхода, и вы можете попробовать самостоятельно с простым сюжетом, если сможете. Я не могу сказать, что скрипт оболочки Matlab работает точно так же, как это длина ~ 2000 строк, но, возможно, есть некоторая причина. Что касается вашего вопроса, может быть много причин, начиная с управления ресурсами и заканчивая привычной пользовательской средой, такой как предпочтительный редактор. Если вы что-то развиваете, среда Matlab отличная, но для обычного тестирования скриптов и простого вычисления функций, кода тестирования фильтра и т. Д. Мне не нужно запускать всю среду Matlab. – theta

+0

Я сделал скрипт 'finish.m' с одной строкой внутри" waitforbuttonpress;» и скопировал его в моей домашней папке, в папку, где был установлен сценарий, в папке Matlab и в Matlab/toolbox/local. Участок прекращается во всех случаях – theta

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