Find a row in a matrix in faster way
Mostra commenti meno recenti
Hi,
I have to compare two matrices: in detail, I have to find if each row of a matrix1 is contained in a matrix2. Then I have to store the corresponding positions in a vector.
The following is a trivial method and seems to be faster than ismember version.
if true
t1=tic;
for m=1:size(matrix1,1)
for l=1:size(matrix2,1)
if(sum(xor(matrix1(m,:), matrix2(l,:)))==0)
vector(m)=l;
end
end
end
toc(t1)
end
ismember version.
if true
t2=tic;
for m=1:size(matrix1,1)
index=ismember(matrix2,matrix1(m,:),'rows');
l=find(index);
vector(m)=l;
end
toc(t2)
end
Is there a way to speed up such computation? Thank
2 Commenti
Image Analyst
il 29 Nov 2012
Are they integer or floating point? http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F
Matt Fig
il 29 Nov 2012
IA, the methods do not return the same results unless both matrices are binary....
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Resizing and Reshaping Matrices 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!