Mapping locations of similar rows in two matrices
Mostra commenti meno recenti
Dear all,
I have two matrices A and B of respective sizes [na,m] and [nb,m], with na>=nb. Both matrices have the same number of columns. All the rows in B are unique while the rows in A can be duplicated, but are all members of B. I would like to create a mapping between A and B and one very inefficient way to do that is as follows:
out=nan(na,1);
for ii=1:na
% for each row of A, I search its location in B
out(ii)=find(all(bsxfun(@minus,A(ii,:),B),2)==0);
end
This works well but becomes prohibitively expensive for large na and nb. And so my question is whether there is a way of getting rid of the for loop and/or creating this mapping differently.
Thanks,
P.
Risposta accettata
Più risposte (1)
the cyclist
il 1 Nov 2014
0 voti
Use the ismember function, with the 'rows' option.
Categorie
Scopri di più su Logical in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!