resultados - ¿Cómo puedo descargar la salida de disp en Matlab u Octave?
imprimir variables en matlab (6)
Tengo un programa en Octave que tiene un ciclo: ejecuta una función con varios parámetros, no algo que puedo convertir en matrices. Al comienzo de cada iteración, imprimo los parámetros actuales usando disp
.
Las primeras veces que lo ejecuté recibí un brazillion advertencias, y luego también obtuve estas impresiones. Ahora que los limpié, ya no los veo. Supongo que están atrapados en un buffer, y los veré cuando el programa termine o el buffer se llene.
¿Hay alguna manera de forzar el lavado del buffer de impresión para que pueda ver mis impresiones?
Coloque los siguientes comandos al comienzo de su sección o su código:
page_screen_output(0);
page_output_immediately(1);
Como se menciona en moastab, fflush(stdout)
funciona para Octave.
En MATLAB, use drawnow(''update'')
para purgar la salida.
La función drawnow
de MATLAB es familiar para aquellos que desean controlar los objetos gráficos redibujados en MATLAB, pero también se aplica a los búfers stdr stdout. La opción ''update''
no es necesaria, pero limita el lavado a colas no gráficas. Este detalle está meramente implícito en la documentación de drawow () ; He verificado que funciona en llamadas fprintf en un bucle.
Si entiendo su pregunta correctamente, puede usar la función de diario para volcar todo el resultado de la sesión en un archivo de texto. diary on
comenzará a grabar, y el diary off
se detendrá. diary filename
usará el nombre de archivo en lugar del "diario" predeterminado.
Es una función build-in tanto en Octave como en MATLAB. Para más detalles ver el help diary
.
También puede aumentar el tamaño del búfer de octava. En Windows puede hacerlo en el cuadro de diálogo Propiedades de Octave desde el menú de la esquina superior izquierda.
Use fflush (stdout) y / o fflush (stderr) para eliminar el buffer de disp ().
drawnow
hará que los gráficos se actualicen, no estoy seguro de si también funciona en el tubo stdout
.
También puede convertir sus sentencias disp(...)
en fprintf(stderr, ...)
, creo que stderr
se maneja de forma diferente a stdout
en Octave.
Octava : puede desactivar el almacenamiento en búfer de la salida llamando more off
.
Esto deshabilitará la paginación de modo que toda la salida se envíe directamente a la pantalla.