在matlab中如何判断两个数据的值是否相等呢?我们都知道通常使用
isequal()
方法,调用方法如下:
tf = isequal(A, B)
然而数据在什么情况下是相等的呢?我们看如下情况
x = 1.38389652673674e-20;
y = 1.38389652673674e-20;
tf = isequal(x, y)
"""
tf =
1
"""
我们可以看到两个完全相同的数值时,结果为
1
,代表相等。
x = 1.383896526736740e-20;
y = 1.38389652673674e-20;
tf = isequal(x, y)
"""
tf =
1
"""
我们可以看到当我们在末尾加上
0
时,虽然此时数据提升了精确度,但是
matlab
还是会认为它们是相等的。
x = 1.383896526736741e-20;
y = 1.38389652673674e-20;
tf = isequal(x, y)
"""
tf =
0
"""
我们可以看到,当我们在一个数据的末尾加上
1
时,此时结果为
0
,表示二者不相等,这符合我们数学上对于相等的定义。
然而实际中
matlab
中会有一个有意思的现象,代码如下:
x = 1.3838965267367400555555555555555e-20;
y = 1.38389652673674e-20;
tf = isequal(x, y)
"""
tf =
1
"""