在matlab中如何判断两个数据的值是否相等呢?我们都知道通常使用isequal()
方法,调用方法如下:
然而数据在什么情况下是相等的呢?我们看如下情况
我们可以看到两个完全相同的数值时,结果为1
,代表相等。
我们可以看到当我们在末尾加上0
时,虽然此时数据提升了精确度,但是matlab
还是会认为它们是相等的。
我们可以看到,当我们在一个数据的末尾加上1
时,此时结果为0
,表示二者不相等,这符合我们数学上对于相等的定义。
然而实际中matlab
中会有一个有意思的现象,代码如下:
我们可以看到,此时数据值明显不相等,但是matlab
依然认定二者是相等的,因为此时小数点后的有效数字过多,超过了matlab
能够判定的位数。经过测试,matlab
中只能判断到小数点后16
位,16
位精度后无论我们添加什么值都不会对相等的结果造成影响。 因此,在实际模拟运算中,如果小数点后的数字过多,我们需要对此稍作注意。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~