matlab在数组中找到特定的VALUES

时间:2015-03-08 15:56:24

标签: arrays matlab indexing element

如何找出所有等于多个值的数组元素索引(> 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));