gpt4 book ai didi

matlab - 在 MATLAB 中使用 == 和 find 的不同结果

转载 作者:行者123 更新时间:2023-12-05 01:48:50 25 4
gpt4 key购买 nike

我使用 MEX 创建了一个稀疏矩阵,还使用 ​​MATLAB 创建了一个稀疏矩阵。为了填充矩阵的值,我使用了相同的公式。现在检查两个矩阵是否相等,我使用了 result=(A==B)。 result 为所有索引返回 1,这意味着所有矩阵元素都相等。但是,如果我找到(A-B),它会返回一些索引,这表明在这些索引处,值是非零的。这怎么可能?

注意:当我比较这些索引的值时,它显示相等!

最佳答案

我猜你的值是 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。值。您可以使用函数 ISINF 检查 AB 中是否有无穷大像这样:

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

如果您得到的值为 1(即 true),则无穷大的存在可能是您出现差异的原因。

关于matlab - 在 MATLAB 中使用 == 和 find 的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com