Перенаправление дисплеев MATLAB в текстовую строку - PullRequest
9 голосов
/ 11 июля 2011

Скажите, что в интерактивном сеансе MATLAB я вызываю функцию из сторонней библиотеки output = long_execution(input). Эта функция печатает информацию с помощью операторов disp в командном окне. Я хотел бы захватить вывод таких disp операторов в текстовой строке, которой я могу манипулировать в MATLAB.

Есть ли (надеюсь, простой) способ перенаправить вывод disp в текстовую строку? Если так, как бы вы это сделали? (может быть через наложение disp?)

Ответы [ 2 ]

13 голосов
/ 11 июля 2011

Вы можете использовать функцию evalc для захвата дисплеев. Например,

    [T, output] = evalc('long_execution(input)');

Все, что обычно идет в командное окно, записывается в вывод T.

4 голосов
/ 11 июля 2011

Если все идет в стандартный вывод, вы можете использовать функцию diary, чтобы захватить это и записать его в файл, затем после выполнения вы можете использовать любое количество утилит чтения файлов Matlab для его анализа. , Вы также можете найти полезными в этом контексте функции tempdir и tempname.

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