在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
"""