2011-06-06 28 views
2

我已經使用MEX創建了一個稀疏矩陣,並且還使用MATLAB創建了一個稀疏矩陣。爲了填寫矩陣的值,我使用了相同的公式。 現在檢查兩個矩陣是否相等我用結果=(A == B)。結果對於所有指標返回1,這意味着所有矩陣元素是相等的。 但是如果我找到(A-B)它會返回一些指數,這表明在這些指數中這些值是非零的。這怎麼可能?使用==的不同結果並在MATLAB中找到

注意:當我比較這些指數的值時,它顯示了相等!

+1

A-B的結果是什麼?如果真的很小,不平等可能是數值精度有限的結果。 – WebMonster 2011-06-06 16:03:11

+2

顯示一個值對的例子,它們相等但A-B不爲零。 – 2011-06-06 16:13:58

回答

5

我猜你在你的矩陣中出現了相同點的值爲infinity。例如:

>> A = Inf; 
>> B = Inf; 
>> A == B 

ans = 

    1 %# They are treated as equal... 

>> A-B 

ans = 

    NaN %# ...but their difference actually results in NaN... 

>> find(A-B) 

ans = 

    1 %# ...which is treated as a non-zero value. 

的差異在這裏從某些業務涉及無窮結果NaN值的事實結果。您可以檢查,看看是否有AB任何無窮通過使用功能ISINF像這樣:

any(isinf(A(:))) 
any(isinf(B(:))) 

,如果你得到的1(即真)值,然後無窮的存在是可能的你的差異的來源。

相關問題