Matlab 快速而清晰地找到两个向量的值何时相等的方法,可能针对不同的索引

Matlab 快速而清晰地找到两个向量的值何时相等的方法,可能针对不同的索引,matlab,sorting,vector,Matlab,Sorting,Vector,假设两个向量A和B都很大,但大小不完全相同。当然,我可以通过将NaN或零添加到A或B来使它们的大小相同 我先验地知道a和B有许多相同的条目,但我不知道在哪个索引处,索引可能不同。例如,我可能有 A(1043) = B(1048) 我想找到所有这样的例子。在Matlab中有没有一种快速而干净的方法来实现这一点 使用intersect a = [5 7 10 17 35 80]; b = [6 7 15 80 27 35 77 95]; [c, ia, ib] = intersect(a,

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

我先验地知道a和B有许多相同的条目,但我不知道在哪个索引处,索引可能不同。例如,我可能有

   A(1043) = B(1048)
我想找到所有这样的例子。在Matlab中有没有一种快速而干净的方法来实现这一点

使用intersect

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)。

可以尝试以下方法:

>> 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