matlab:找到两个矩阵共同的值的索引

时间:2012-09-20 06:32:52

标签: arrays matlab find compare indices

我有一个简单的问题。

假设我们有两个数组:

data = [1 1 2 2 2 2 3 3 3 4 4 4 4 4 5 5 5 5 6 6 6];
A = [1 3 6];

我希望数据的值索引等于A中的任何值。

即。答案是:1,2,7,8,9,19,20,21

如何在不使用for循环并逐个扫描A中的每个值的情况下执行此操作..? 谢谢! 艺术。

1 个答案:

答案 0 :(得分:8)

这样就可以了:

inds = find(ismember(data, A))

函数ismember会在data中找到A中的所有元素。 ismember的第二个输出也很有用:

>> [~, b] = ismember(data, A))
ans = 
    1 1 0 0 0 0 2 2 2 0 0 0 0 0 0 0 0 0 3 3 3

123引用A的索引。