2012-09-20 37 views
2

我有一个简单的问题。matlab:找到两个矩阵共有的值的索引

可以说,我们有两个数组:

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循环和逐一扫描每个值..? 谢谢! 艺术。

回答

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

+0

太棒了!感谢您的答案结束说明:) – Art