2017-01-09 105 views
0

我正在MATLAB中使用數組A。該數組中的值最多有5位小數。我想將這些值截斷爲更少的小數點。截斷變量MATLAB

有沒有辦法做到這一點?

謝謝!

+2

你真的想使用精度要求不高或者只顯示不同的看法? – excaza

+0

總結一下:如果你真的想因爲某種原因降低精度,可以看看'fix','round','ceil','floor'。如果你只是想更簡潔地展示一些東西,可以看一下'format'。 –

回答

1

出於某種原因,Matlab的 「截斷」 功能被稱爲fix。所以

>> fix(3.5) 
ans = 3 

>> fix(-3.5) 
ans = -3 

要截斷,圓,地板或小區什麼小數的定數,乘以幾十權力,截形,圓形,地板或小區,再由幾十權力劃分的結果。

所以:

>> fix(123.456 * 10^2) 
ans = 12345 

>> ans/10^2 
ans = 123.45 
+0

好奇你爲什麼使用'fix'進行整數舍入,並且在乘法和除法上進行變通以實現舍入? MATLAB有一個非常好的循環函數,可以循環到給定的位數... – Wolfie

+1

問題是關於截斷,而不是舍入。 'fix(3.7)'和'round(3.7)'給出不同的結果。我使用乘法和除法的原因是因爲'fix'不需要精確的參數,而且舊版本的Matlab中的其他函數也沒有。 – giusti

+0

由於沒有精確的參數,我明白了'*'和'/'的用法......只是查詢'fix'與'round',但你關於截斷與舍入的觀點是公平的。 – Wolfie

3

舍入位數:

爲了完善的值(或基質),以小數位的給定數目的,使用round,例如爲2位小數...

round(1.2345, 2) 

ans = 1.2300 

爲了也未顯示尾隨零,首先將格式更改爲shortg

format shortg 

round(1.2345, 2) 

ans = 1.23 

格式compact可以達到類似的結果,請根據以下文檔選擇最適合您的需求的結果。

文檔:

回合:https://uk.mathworks.com/help/matlab/ref/round.html

格式:https://uk.mathworks.com/help/matlab/ref/format.html