我有两个大小相同的双数组,但其中一个总是具有以下格式:
A1 = 0.0756 0.0368 0.0124 0.0024 0.0002 0.0000 0.0000
而另一个是:
A2 = 0.0797 0.0368 0.0120 0.0024 0.0004 0 0
我想强制最后两个元素具有相同的准确度,即0.0000
而不是0
。尝试A2(7) = 0.0000
的天真方法不起作用,尽管A2(7) = A1(7)
可以解决问题。
如何更巧妙地存档?
答案 0 :(得分:2)
小心!我想你会发现A1(7) == 0
返回false
。
同样的准确度究竟是什么意思?内部matlab对两个数组的每个元素使用相同的精度(它们都是双精度数)。它只是以不同的方式显示它们。
尝试以下命令:
A1(7);
format long g
A1(7);
我认为你会发现事实上A1(7)
不是0
,而且还准确到远远超过你看到的4个小数点。
所以问题是,你真的想要四舍五入到小数点后4位吗?或者你只想显示最多4个小数位?我想你想要后者,所以看看sprintf
答案 1 :(得分:0)
数字实际上已经具有所需的精度。如果你想要,你可以用任何你想要的数字打印它们(虽然通常只有前十四个是重要的)。
为此您可以使用各种打印命令,但是如果您想要更改默认方式显示数字,那么您的简单选项非常有限。
检查help format
您可以选择的内容。
如果您总是希望显示最小小数位数,我相信您唯一的选择是:
format shorteng