如何检查某些矩阵是否具有特定元素?

时间:2013-09-16 09:21:12

标签: matlab matrix element

所以我有5个不同的向量或矩阵。我基本上想要对这些矩阵中的任何一个是否包含特定元素(例如2)进行If语句,然后如果这些矩阵中的任何一个确实包含该元素,则显示一些值(例如8)。如果其中四个矩阵不包含该元素并不重要,如果有,那么我将显示8。

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

假设你的矩阵是A,B,C,D和E. 这是一种检查其中是否包含2的方法。

any(A(:) == 2) || any(B(:)== 2) || any(C(:)== 2) || any(D(:)== 2) || any(E(:) == 2)

请注意使用||代替|,这意味着如果发现一个矩阵包含2,则不再需要检查其他矩阵。

另一种更紧凑的方法(尽管可能效率较低):

any([A(:); B(:); C(:);D(:);E(:)] == 2)

如果声明为真,那么显示8应该是微不足道的。

答案 1 :(得分:0)

考虑有5个不同的矩阵,分别命名为a1,a2,...,a5

if(numel(find(a1==2))|(numel(find(a2==2)))|(numel(find(a3==2)))|(numel(find(a4==2)))|  (numel(find(a5==2))))
display(8)
end

如果重复次数不重要,你可以使用任何一种:

if(any(a1(:)==2)|any(a2(:)==2)|any(a3(:)==2)|any(a4(:)==2)|any(a5(:)==2))
display(8)
end