Rapid Vector Matching/Search Problem
이전 댓글 표시
I have a matrix (we'll call A) of size m x n, and a vector (we'll call B) that is a 1 x n, and I am interested in finding the one unique index (and I know there is just one) where A(index,:) equals B, is there a way for me to quickly make the determination in MATLAB besides using the following code:
for i = 1 : m
if ((isequal(A(i,:), B)))
indexIntrest = i;
break;
end
end
Thanks
댓글 수: 1
Oleg Komarov
2014년 8월 23일
Have you tried the bsxfun() solution?
채택된 답변
추가 답변 (1개)
Oleg Komarov
2014년 8월 21일
find(all(bsxfun(@eq, A,B),2))
What happens is every row of A is tested with @eq for element-wise equality against B, producing a m x n logical matrix. Then, all() tests each row if all elements are true, and find() returns the position.
카테고리
도움말 센터 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!