2011-07-11 12 views
8

Dire che, in una sessione interattiva MATLAB, chiamo una funzione da una libreria di terze parti output = long_execution(input). Questa funzione stampa le informazioni tramite le istruzioni disp nella finestra di comando. Vorrei catturare l'output di tali istruzioni disp su una stringa di testo che posso manipolare in MATLAB.Reindirizzamento del disp di MATLAB a una stringa di testo

Esiste un modo (auspicabilmente facile) di reindirizzare l'output di disp a una stringa di testo? Se sì, come lo faresti? (forse tramite la treccia di disp?)

+0

possibile duplicato [Soppressione uscita finestra di comando di una funzione in Matlab] (http://stackoverflow.com/ domande/3029636/sopprimendo-a-funzioni-comando-window-uscita-in-mATLAB) – Amro

risposta

12

È possibile utilizzare la funzione evalc per acquisire le uscite disp. Ad esempio,

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

Tutto ciò che normalmente andare finestra per comandare viene catturata nel T. uscita

4

Se tutto sta andando in stdout, è possibile utilizzare la funzione diary per acquisirla e scriverla su file, quindi dopo l'esecuzione è possibile utilizzare un numero qualsiasi di utilità di lettura file Matlab da analizzare attraverso esso. Potresti anche trovare utile la funzione tempdir e tempname in questo contesto.

Problemi correlati