我有矩阵100*100
(行*列),它包含0.00051,0.00052,0.00056
之类的数字,依此类推。我试图完成这些数字,但问题是
使用round(X)
只会"0"
。我想把数字四舍五入,
0.00051 become 0.0005
0.00052 become 0.0005
0.00056 become 0.0006
由于
答案 0 :(得分:0)
这个问题在MATLAB Central上提出,并由Roger Stafford回答: http://www.mathworks.com/matlabcentral/newsreader/view_thread/169196?requestedDomain=www.mathworks.com
为方便起见,窃取他的答案:
要将数字n实际更改为最接近的四位小数,请执行:
m = 4; %有效小数的数量
k = floor(log10(abs(n))) - m + 1;
n2 = round(n / 10 ^ k)* 10 ^ k;
或者,您可以从Matlab文件交换中获取roundn(x,n)并进行roundn(x,-4)。 http://www.mathworks.com/matlabcentral/fileexchange/37067-roundn-x-n--returns-x-rounded-to-n-digits
现在对于Mohamed建议的简单解决方案:根据Matlab文档使用round(x,4)。 http://www.mathworks.com/help/matlab/ref/round.html
这是一个快速的谷歌搜索。请将来做研究。