【问题标题】:How do I check whether some matrices have a specific element?如何检查某些矩阵是否具有特定元素?
【发布时间】:2013-09-20 09:27:05
【问题描述】:

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

感谢您的帮助

【问题讨论】:

标签: matlab matrix element


【解决方案1】:

假设您的矩阵是 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 应该是微不足道的。

【讨论】:

    【解决方案2】:

    考虑有 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
    

    【讨论】:

    • 应该可以完成工作,但特别是如果最后几个矩阵很大,除非有必要,否则您将希望避免评估它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2010-10-20
    • 2016-09-06
    • 2021-01-24
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多