please help me sort this out

please can someone help me with a very simple coding... i know its simple but i'm not getting...
i 2 matrix with dimensions below,
A = with 13 rows and 125 columns
B = with 1 row and 125 column,
i want to find which row of A matches with B if it does not match, i want to get the row which matches with most columns of B
please someone help me to sort it out, eg if A is,
34 44 55 66
23 33 22 27
21 44 66 34
if B = 23 33 22 27 i want ans = 2
if B = 27 44 66 34 i want ans = 3

 Risposta accettata

A=[4 44 55 66
23 33 22 27
21 44 66 34]
B=[23 33 22 27]
[~,ii]=max(sum(ismember(A,B),2))

2 Commenti

so simple... thank you so much sir.... i was using for loop and if condition.... great!!! you just did that in one line..... thank you so much sir....
+1 Azzi
However, note that this does not care about the column order, which may or may not matter.
% Which row of A matches B the most?
A = [1 2 3 5 ;
4 3 2 1]
B = [1 2 3 4]

Accedi per commentare.

Più risposte (1)

Jos (10584)
Jos (10584) il 6 Feb 2014
When column number does matter:
% A : a N-by-M array
% B : a 1-by-N row vector
[~, ii] = max(sum(bsxfun(@eq,A,B),2))
RESULT = A(ii,:)

1 Commento

thank you so much for explaining me the difference....

Accedi per commentare.

Categorie

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by