如果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]
如何实现?
答案 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)