Скажите, что в интерактивном сеансе MATLAB я вызываю функцию из сторонней библиотеки output = long_execution(input). Эта функция печатает информацию с помощью операторов disp в командном окне. Я хотел бы захватить вывод таких disp операторов в текстовой строке, которой я могу манипулировать в MATLAB.
output = long_execution(input)
disp
Есть ли (надеюсь, простой) способ перенаправить вывод disp в текстовую строку? Если так, как бы вы это сделали? (может быть через наложение disp?)
Вы можете использовать функцию evalc для захвата дисплеев. Например,
[T, output] = evalc('long_execution(input)');
Все, что обычно идет в командное окно, записывается в вывод T.
Если все идет в стандартный вывод, вы можете использовать функцию diary, чтобы захватить это и записать его в файл, затем после выполнения вы можете использовать любое количество утилит чтения файлов Matlab для его анализа. , Вы также можете найти полезными в этом контексте функции tempdir и tempname.
diary
tempdir
tempname