2014-11-13 59 views
4

我正試圖在MATLAB中編寫代碼,將數字舍入到某些(如我問)有效數字。四捨五入爲n有效數字

我不知道該怎麼做。有什麼建議麼?

+0

http://www.mathworks.com/help/symbolic/digits.html – Treesrule14

+0

您也可以使用[驗證碼](HTTP://www.mathworks。 COM/matlabcentral/fileexchange/26212輪與 - 顯著位數/內容/ roundsd.m)。 – Arpi

回答

7

四捨五入到d顯著數字

>> d = 3; %// number of digits 
>> x = 5.237234; %// example number 

>> D = 10^(d-ceil(log10(x))); 
>> y = round(x*D)/D 
y = 
    5.2400 

四捨五入到d十進制數字

>> d = 3; %// number of digits 
>> x = 5.237234; %// example number 

>> D = 10^d; 
>> y = round(x*D)/D 
y = 
    5.2370 

編輯

其實這是簡單:在round功能支持以下選項:

>> d = 3; 
>> x = 5.237234; 
>> y = round(x, d, 'significant') 
y = 
    5.2400 

>> d = 3; 
>> x = 5.237234; 
>> y = round(x, d) %// or y = round(x, d, 'decimals') 
y = 
    5.2370 
+0

爲什麼B(2)= B(3) B = [sdround(PI/4,3),sdround(PI/4,4),sdround(PI/4,9)] B = 0.7850 0.7854 0.7854 – saharz

+0

@saharz這只是一個顯示問題。試試'format long' –

+1

請注意,八度沒有升級的'round'函數,所以這個答案的前面部分對於開源用戶仍然有用。 – dmckee