如何在多个条件上使用逻辑索引

时间:2017-06-05 22:09:51

标签: matlab indexing

我有一个包含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

感谢。

2 个答案:

答案 0 :(得分:1)

i = all(tb.subn==[3 10 12 19], 2);

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

答案 1 :(得分:1)

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