Matlab强制可变精度

Matlab强制可变精度,matlab,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)可以奏

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

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)
可以奏效


我怎样才能更巧妙地存档它呢?

小心!我想你会发现
A1(7)==0
返回
false

你说的同样的准确度到底是什么意思?在内部,matlab对两个数组的每个元素使用相同的精度(它们都是双倍的)。它只是以不同的方式显示它们

请尝试以下命令:

A1(7);
format long g
A1(7);
我想你会发现事实上,
A1(7)
不是
0
,而且它的准确度也远远超过你看到的4个小数点


所以问题是,你真的想要四舍五入到小数点后4位吗?还是只想显示最多4位小数?我想象你想要后者,所以看看sprintf,数字实际上已经达到了期望的精度。如果您愿意,您可以打印任意数量的数字(尽管通常只有大约前十四个数字是有效的)

为此,您可以使用各种打印命令,但是如果要更改数字的默认显示方式,您的简单选项非常有限

检查
帮助格式
,了解您可以选择的内容。 如果您总是希望显示最小小数数,我相信您唯一的选择是:

format shorteng

我希望元素6,7是0.0000,我怎么能做到?你为什么想要这个?如果它是因为某些输出需要它,您应该查看打印命令。