如何检查两个向量是否相等?

时间:2018-12-25 10:59:48

标签: vector comparison octave

来自documentation

  

如果Octave的所有比较运算符都返回1,   比较为true,否则为0。对于矩阵值,它们都   逐个元素地工作。广播规则适用。看到   广播。例如:

[1, 2; 3, 4] == [1, 3; 2, 4]
     ⇒  1  0
         0  1

糟糕!因此,我无法直接使用==来检查两个向量/矩阵是否相等。

当然,我可以将==ones返回的矩阵进行比较,以查看它是否仅包含1-但这引出了问题,因为我需要能够比较向量/矩阵可以做到这一点!

请注意:对我来说,如果两个向量在相同位置上相等,则两个向量相等;所以这些是相等的向量

[1,2,3,4]
[1,2,3,4]

这些不是:

[1,2,3,4]
[1,2,4,3]

这些也不是很好:

[1,2,3,4]
[1,2,3,5]

如何实现?

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点:

一个:

如果x=[1,2,3,4]y=[1,2,4,3],则可以检查res = x == y

现在if all(res)返回true,那么我们知道两个向量确实是相同的。

总结一下:

x=[1,2,3,4]
y=[1,2,3,4]
if all(x == y),
   fprintf "equal"
else
   fprintf "not equal"
end

两个:

或更简单的方法是使用内置功能isequal(x,y)