2010-11-18 52 views
2

在Matlab中,如何控制在命令窗口中顯示的小數位數?如何顯示一定數量的小數位

例如,

>> X = 0.4654

X =

0.4654 

如何在顯示變量x的值0.5,0.47,0.465分別命令窗口?

謝謝!

+2

可能重複[是否有可能在MATLAB明確格式化輸出數字?](http://stackoverflow.com/questions/1759982/is-it-possible-in-matlab-to-explicitly- format-the-output-numbers) – mtrw 2010-11-18 09:15:38

+0

正如mtwr所說,你的問題可能是在上面的帖子中回答的。使用num2str。 – 2010-11-18 14:10:27

回答

4

我不認爲有內置的舍入到任意的地方,但你可以實現做圓(X * 10^一些地方)/ 10^許多地方舍入的結果。這種打印出與尾隨零,如果你想擺脫那些你所要做的像的sprintf到度的特殊格式打印所以你的情況,你可以通過做得到你想要的結果:

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

我希望這有助於!

編輯:如果你想這樣做的矩陣,我不知道是否有更好的方法,但你可以只在給定的x爲矩陣的行中循環:

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

謝謝!有用!但我想知道如果x是一個矩陣。答覆的方式將顯示一行中的所有行,但是我希望不同的行中有不同的行,就像在命令窗口中顯示矩陣一樣。 – Tim 2010-11-18 05:24:01

+0

嘿蒂姆,我不知道如何正確地做到這一點,但你可以通過遍歷行來顯示它,我編輯我的答案包括它。 – ameer 2010-11-18 06:03:20

2

您擁有控制權命令窗口使用format命令。我建議你看看doc format,它給你特定的選項。

如果您需要更精確,你最好使用disp關閉,和/或取整函數,例如:z = round(x/y)*y

0

更改格式。

format shortG