2010-11-18 31 views
2

Dans Matlab, comment contrôler le nombre de chiffres décimaux à afficher dans la fenêtre de commande?comment afficher un certain nombre de chiffres décimaux

Par exemple,

>> x = 0,4654

x =

0.4654 

comment afficher la valeur de la variable x 0,5, 0,47, 0,465, respectivement en fenêtre de commande?

Merci!

+2

double possible de [Est-il possible en Matlab pour formater explicitement les numéros de sortie?] (Http://stackoverflow.com/questions/1759982/is-it-possible-in-matlab-to-explicitly- format-the-output-numbers) – mtrw

+0

Comme mtwr l'a dit, votre question est probablement répondu dans le message ci-dessus. Utilisez num2str. –

Répondre

4

Je ne pense pas qu'il y ait construit dans l'arrondissement à des endroits arbitraires, mais vous pouvez obtenir le résultat arrondi en faisant rond (x * 10^nombre de places)/10^nombre de places. Ce imprime avec les zéros, si vous voulez vous débarrasser de ceux que vous avez à faire une impression spécialement formaté comme sprintf aux degrés si dans votre cas, vous pouvez obtenir les résultats que vous voulez en faire:

sprintf('%.1f', round(x*10)/10) 
sprintf('%.2f', round(x*100)/100) 
sprintf('%.3f', round(x*1000)/1000) 

J'espère que ça aide!

Edit: Si vous voulez le faire pour les matrices, je ne sais pas s'il y a une meilleure façon, mais vous pourriez créer une boucle juste sur les lignes données x comme une matrice:

for i=1:length(x(:,1)), 
disp(sprintf('%.2f\t', round(x(i,:)*100)/100)) 
end 
+0

Merci! Ça marche! Mais je me demandais si x est une matrice. Le chemin dans votre réponse affichera toutes les lignes dans une seule ligne, Cependant j'espère que la ligne différente dans la ligne différente, juste similaire à afficher une matrice dans la fenêtre de commande. – Tim

+0

Hey Tim, je ne suis pas sûr de savoir comment le faire correctement, mais vous pouvez l'afficher juste en faisant une boucle sur les lignes, j'ai édité ma réponse pour l'inclure. – ameer

2

Vous avez le contrôle sur la fenêtre de commande à l'aide de la commande format. Je vous suggère de jeter un oeil à doc format, qui vous donne des options spécifiques.

Si vous avez besoin de plus de précision, vous seriez mieux d'utiliser disp, et/ou une fonction d'arrondi tel que: z = round(x/y)*y

0

Modifier le format.

format shortG