2011-03-01 88 views
8

Me preguntaba cómo usar el comando para configurar la visualización con n lugares decimales en Matlab?Cómo mostrar con n decimales en Matlab

¿Debe estar restringido a algunos números predeterminados? O uno solo puede especificar alguno para n?

¡Gracias y saludos!

+1

Posibles duplicados: [cómo mostrar datos en matriz con más de 4 decimales] (http://stackoverflow.com/questions/2311520/how-to-display-data-in-matrix-with-with-more -than-4-decimales), [¿Es posible mostrar números en formato no de ingeniería en Matlab?] (http://stackoverflow.com/questions/3999205/is-it-possible-to-show-numbers-in -non-engineering-format-in-matlab). Respuesta breve: examine el comando [FORMAT] (http://www.mathworks.com/help/techdoc/ref/format.html). – gnovice

Respuesta

9

Puede convertir un número en una cadena con n cifras decimales usando el comando SPRINTF:

 
>> x = 1.23; 
>> sprintf('%0.6f', x) 

ans = 

1.230000 

>> x = 1.23456789; 
>> sprintf('%0.6f', x) 

ans = 

1.234568 
+2

Gracias! Pero solo quiero que sea numérico, no de cadena. – Tim

+1

@Tim: No estoy seguro de lo que quiere decir con querer que sea numérico. ¡Es numérico! Si desea redondear un número al sexto lugar decimal, podría hacer 'round (x * 10^6)/10^6'. –

+0

Para redondear números, hay varias variantes del código de @ b3 en el intercambio de archivos: http://www.mathworks.co.uk/matlabcentral/fileexchange/21121-round-to-specified-digits-place http: // www .mathworks.co.uk/matlabcentral/fileexchange/4261-round2 http://www.mathworks.co.uk/matlabcentral/fileexchange/6077-round2 –

-2

Yo uso como Tim decir sprintf('%0.6f', x), es una cadena y luego lo cambio a un número usando el comando str2double(x).

+0

está aumentando el tiempo de cálculo en 2 veces – mvikhona

Cuestiones relacionadas