matlab 在数组中找到特定的值

matlab find specific VALUES in an array

如何找出等于多个值的所有数组元素索引(>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 循环来执行此操作?

您可以使用 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

如果您想更手动地完成,可以使用 bsxfun:

c = find(any(bsxfun(@eq, a(:).', b(:)), 1));