【问题标题】:How to use logical indexing on multiple criteria [duplicate]如何在多个条件上使用逻辑索引[重复]
【发布时间】:2017-06-05 22:09:51
【问题描述】:

我有一个表,其中有一列包含 1 到 20 之间的值。我想过滤表,以便我只能显示某些离散值,即 3、10、12 和 19。问题是写这个是很麻烦,尤其是因为我还想写其他过滤条件。:

i = tb.subn==3 | tb.subn==10 | tb.subn==12 | tb.subn==19 

如果我使用i = tb.subn==[3 10 12 19],那么我会得到一个 :x4 布尔矩阵。我怎样才能把它放在一栏中?

如果是&,我想我可以使用 prod(tb.subn==[3 10 12 19],2) 但我不知道or

谢谢。

【问题讨论】:

    标签: matlab indexing


    【解决方案1】:

    您可以使用ismember(tb.subn, [3, 10, 12, 19])

    【讨论】:

    • 就是这样!谢谢你的帮助。我忘记了这个功能。
    【解决方案2】:
    i = all(tb.subn==[3 10 12 19], 2);
    

    请注意,这仅适用于非常晚的 matlab,而您的解决方案将更好地适用于所有版本。

    【讨论】:

    • 感谢您的帮助。这适用于AND,但OR 呢?
    • 对于 OR,您将使用 any 而不是 all。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2013-05-05
    • 2021-02-10
    • 2014-08-23
    • 2020-04-26
    • 2014-05-22
    • 2010-12-15
    相关资源
    最近更新 更多