完成数字

时间:2016-04-29 04:37:45

标签: matlab

我有矩阵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

由于

1 个答案:

答案 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

这是一个快速的谷歌搜索。请将来做研究。