2015-01-31 11 views
2

Я хочу запустить терминал Linux из скрипта Matlab для запуска объектного файла с терминала. После запуска терминала скрипт Matlab должен быть продолжен.Запуск Linux-терминала от Matlab

Я пробовал как команды unix(), так и system(), но в обоих сценариях Matlab застрял в сценарии терминала и не продолжается.

Есть ли способ для сценария Matlab запускать терминал, запустить на нем исполняемый файл и продолжить выполнение скрипта Matlab с остальной частью скрипта?

+1

Вы действительно хотите окно эмулятора терминала (например, Konsole KDE) или просто хотите запустить программу? По «объекту» я предполагаю, что вы имеете в виду скомпилированный исполняемый файл? Но тогда почему вы говорите о «терминальном сценарии»? И что означает «застревает»? –

+0

http://stackoverflow.com/help/how-to-ask –

+2

Вам не нужно открывать терминал для выполнения программы ... Вы можете просто запустить исполняемый файл из скрипта matlab с помощью команды 'system' , [Здесь] (http://www.mathworks.com/matlabcentral/newsreader/view_thread/241352) - пример, как это сделать ... Я думаю, что это более простой способ ... :) – Noamiko

ответ

2

Чтобы вернуться в Matlab сразу после запуска внешнего процесса, добавьте & в конце строки, переданной в system. Например

system('filename &') 
+0

Отлично, это то, что мне нужно! Я хотел бы, чтобы терминал открывался, когда он отображает полезную информацию, есть ли способ увидеть терминал тоже? – user2835098

+0

Я не очень часто использую Linux. Возможно, 'system ('sh filename &')'? –

+0

Или, может быть, 'str = evalc ('system (' 'filename &' ')')', чтобы получить вывод в строке 'str'; см. [здесь] (http://blogs.mathworks.com/community/2010/05/17/calling-shell-commands-from-matlab/) –

1

Вы хотите запустить отдельное приложение терминала такие, как терминала, гном-терминал, XTerm, Konsole, и т.д. (see here) обеспечение флага -e следует команды, которую вы хотите бежать. Что-то вроде этого:

system('gnome-terminal -e ''your command here'' &') 
Смежные вопросы