如何找出所有等于多个值的数组元素索引(> 2)
例如,我有一个数组a = [1 2 3 4 5 5 4 3 2 2 2 1]
,我想知道所有元素的索引等于b = [2 5]
请记住,我不能使用a==b(1) | a==b(2)
之类的样式,因为b中的元素数量是任意的。
我是否必须使用for循环才能执行此操作?
2 个答案:
答案 0 :(得分:4)
你可以使用ismember(因为Daniel在我输入之前只是秒 ...); - )
a=[1 2 3 4 5 5 4 3 2 2 2 1];
b=[2 5];
c=find(ismember(a,b))
输出:
c =
2 5 6 9 10 11
答案 1 :(得分:2)
如果您想手动执行此操作,可以使用bsxfun
:
c = find(any(bsxfun(@eq, a(:).', b(:)), 1));