2009-09-17 4 views
12

Ho un M-file che emette alcuni calcoli fondamentalmente questo:Come si genera un'interruzione di riga nella visualizzazione comandi in Matlab quando si esegue un m-file?

disp(['Value ', num2str(i)]); 
disp(x) 
disp(['Number of iterations ', num2str(iter)]) 
disp('----------') 

Tuttavia questo ouputs roba piuttosto disordinato nella visualizzazione dei comandi che è veramente irritante quando il debug del codice. Vorrei aggiungere un paio di interruzioni di riga all'output nella finestra di comando. Tuttavia non riesco a trovare alcuna informazione su questo, in quanto la documentazione di Matlab è piuttosto orribile. Ho provato cose come disp ('\ n') e disp ('') inutilmente.

Come si fa? Può essere fatto?

risposta

21

fprintf('\n') dovrebbe fare il trucco, allo stesso modo disp(' '). In generale, fprintf è più flessibile di disp. Il vantaggio principale di disp è che ha un po 'di intelligenza e sa come stampare gli oggetti completi.

+0

Grazie! fprintf ('\ n') ha fatto il trucco. Non sapevo che fprintf poteva produrre del testo. Bello che puoi anche fare fprintf ('Juhi =% d', 17). Tuttavia disp ('') non emette ancora un'interruzione di linea potrebbe essere un problema di versione o qualcosa del genere. –

+2

disp ('') non produce output, ma disp ('') (con uno spazio) è sufficiente per la maggior parte degli scopi pratici. In caso contrario, utilizzare fprintf come suggerito o disp (s) dove s è una stringa contenente ciò che è necessario. – groovingandi

+0

oops, sì, disp ('') è corretto – Edric

10

È possibile anche disp un carattere interruzione di linea '\ n' con il suo valore decimale: 10.

disp(char(10)) 

o

disp(['line 1' char(10) 'line 2']) 
+2

Il primo non funziona. Devi scrivere 'disp (char (10))', altrimenti visualizza solo il numero 10. – gnovice

+0

@gnovice ... quindi, grazie. Mi ero abituato ad altri metodi di testo che non hanno un override per il doppio. Buona pesca. –

+0

Penso che la seconda riga di codice avrebbe funzionato come prima. La concatenazione di caratteri e doppi dovrebbe convertire i doppi in equivalenti ASCII. – gnovice

Problemi correlati