快速而干净的方法来查找两个向量的值何时相等,可能用于不同的索引

时间:2013-08-02 16:21:42

标签: matlab sorting vector

假设我有两个向量A和B,两个都很大,但不是完全相同的大小。我当然可以通过向A或B添加NaN或零来使它们具有相同的大小。

我先前知道A和B有许多相同的条目,但我不知道哪些索引,索引可能不同。比如我可能有

   A(1043) = B(1048)

我想找到所有这些情况。在Matlab中有一个快速而干净的方法吗?

2 个答案:

答案 0 :(得分:3)

使用交叉

a = [5 7 10 17 35 80];
b = [6 7 15 80 27 35 77 95];
[c, ia, ib] = intersect(a, b);

c是两者中的值,ia和ib是定位它们的索引,使得a(ia)== b(ib)。

答案 1 :(得分:0)

可以试试这个:

>> A=[123:17625];
>> B=[263:265 1:29];
>> find(ismember(A,B))

ans =

   141   142   143 %indices of A

>> find(ismember(B,A))

ans =

     1     2     3 %indices of B