天天看點

matlab判斷兩個資料是否相等的相關問題

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

繼續閱讀