Matlab强制执行变量准确性

时间:2014-01-06 14:53:31

标签: matlab

我有两个大小相同的双数组,但其中一个总是具有以下格式:

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)可以解决问题。

如何更巧妙地存档?

2 个答案:

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