2011-07-11 13 views
8

Digamos que, en una sesión interactiva de MATLAB, invoco una función de una biblioteca de terceros output = long_execution(input). Esta función imprime información a través de las declaraciones disp en la ventana de comandos. Me gustaría capturar el resultado de tales declaraciones disp en una cadena de texto que puedo manipular en MATLAB.Redireccionando disp de MATLAB a una cadena de texto

¿Existe alguna forma (afortunadamente fácil) de redirigir la salida de disp a una cadena de texto? Si es así, ¿cómo lo harías? (¿Quizás mediante la superposición de disp?)

+0

posible duplicado de [Supresión de salida de la ventana de comandos de una función en Matlab] (http://stackoverflow.com/ preguntas/3029636/suprimir-a-funciones-comando-ventana-salida-en-matlab) – Amro

Respuesta

12

Puede usar la función evalc para capturar salidas disp. Por ejemplo,

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

Cualquier cosa que normalmente comando Ir a la ventana es capturado en el T. salida

4

Si todo va dentro de stdout, puede usar la función diary para capturar eso y escribirlo en un archivo, luego de la ejecución puede usar cualquier cantidad de utilidades de lectura de archivos matlab para analizar a traves de. También puede encontrar útil la función tempdir y tempname en este contexto.

Cuestiones relacionadas