2009-06-18 21 views
17

¿Hay alguna manera de mostrar/mostrar información de un programa MATLAB sin un avance de línea final?Visualización de información de MATLAB sin un salto de línea

Mi programa MATLAB genera un número un poco de vez en cuando. Entre la salida del número, el programa hace muchas otras cosas. Esta es una construcción principalmente para indicar algún tipo de progreso y sería bueno no tener un salto de línea cada vez, solo para hacerlo más legible para el usuario. Esto es aproximadamente lo que estoy buscando:

Current random seed: 
4 7 1 1 

La próxima salida del programa sería en la misma fila si se sigue haciendo lo mismo que antes.

He leído el documento en disp, sprintf y formato pero no he encontrado lo que estoy buscando. Esto no quiere decir que no está allí. ;)

Respuesta

22

La función fprintf no agrega un avance de línea a menos que explícitamente se lo indique. Omita el argumento fid para que se imprima en la ventana de comandos.

fprintf('Doing stuff... '); 
for i = 1:5 
    fprintf('%d ', i); 
    % do some work on that pass... 
end 
fprintf(' done.\n'); % That \n explicitly adds the linefeed 

El uso de sprintf trabajará no del todo: se crea una cadena sin un avance de línea, pero si se utiliza disp() u omitir el punto y coma, la propia lógica de visualización de disp añadirá un avance de línea.

+2

Nota: dependiendo de su plataforma, es posible que deba llamar a "drawow"; después del fprintf. –

+0

Funciona como un encanto. – AnnaR

+0

¿Qué sabes, he estado haciendo disp (sprintf (...)) durante años y nunca he sabido que puedes usar fprintf. –