查找任意数量的向量的首次出现

时间:2018-09-27 03:49:32

标签: matlab vector find

我想找到x中2,3或5的第一次出现。输出应为7,因为3首先出现在索引7。我该怎么做?

x = [0 0 0 0 1 1 3 5 2 0 0];
y = [2 3 5]; 

output = 7

我可以使用find(x == 3,1)来查找一个数字,但是如何对多个数字进行查找呢?

谢谢

2 个答案:

答案 0 :(得分:4)

MATLAB findismember组合已经是正确的选择

在这种情况下

>> find(ismember(x,y),1)

将做您想要的。它返回数组y中数组x第一次出现的索引。这将适用于y可能有的任何长度。

答案 1 :(得分:1)

Find()接受逻辑术语作为参数,因此您可以使用调用,而不是仅检查3,而是使用类似以下内容的方法: (x == 2 || x == 3 || x == 5)

我很一般,您可能要使用intersect()函数。