È ansible in matlab formattare in modo esplicito i numeri di uscita?

Conosco il formato MATLAB lungo , formato short , eng … e così via. Ma breve e lungo mostrerà sempre un numero predefinito di decimali, con un esponente, e ad esempio, il banco di formato mostrerà sempre 2 decimali.

C’è un’opzione per mettere il tuo formato esplicito, in un “modo fortran”, come f8.3 -> 1234.678?

Sto cercando un modo per visualizzare i numeri con 4 punti decimali e il resto prima del punto decimale, senza esponente.

Non conosco un modo per specificare un formato globale del tipo che desideri. sprintf('%15.4f', x) o num2str(x, '%15.4f') fai quello che stai cercando, se non ti dispiace chiamarli esplicitamente ogni volta.

Secondo la documentazione Matlab che è disponibile sul loro sito web è ansible utilizzare

 format shortG 

per impostare il formato di visualizzazione per l’uscita su n.4.

Secondo la documentazione ti permette di formattare il numero.

Inoltre, la formattazione è ben documentata.

Ci sono due soluzioni semplici:

  1. usando la funzione sprintf :

    str = sprintf (‘%. 4f’, mioNumero);

  2. utilizzando la formattazione basata su Java, che è molto più potente ( maggiori informazioni ):

    str = char (java.text.DecimalFormat (‘#. 0000’). format (myNumber));

Il più vicino che potrei inventare è:

 format bank 

Non ti darà E e 2 cifre decimali.

prova a leggere

 help format 

per cercare altre opzioni lì ( non uso più Matlab … passato al Software Libero 🙂 )

Uso solo sprintf e num2str come menzionato da mtrw. sprintf() è pensato per più argomenti scalari di vari tipi (funziona con matrici, ma non in modo chiaro). num2str() è pensato per l’uso con una singola matrice.

Metti sopra il file Matlab (.m) la seguente frase “format shortG”.

Esempio:

 format shortG; Q = [0 0.54994 0.1998 0.1998; 0 0.54994 0.1998 0.1998; 0 0.54994 0.1998 0.1998; ]; disp(Q); 

Sono disponibili più opzioni: formato di output Matlab