Effacer les filtres
Effacer les filtres

please help me sort this out

1 vue (au cours des 30 derniers jours)
Elysi Cochin
Elysi Cochin le 6 Fév 2014
Commenté : Elysi Cochin le 7 Fév 2014
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

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 6 Fév 2014
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 commentaires
Elysi Cochin
Elysi Cochin le 6 Fév 2014
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....
Jos (10584)
Jos (10584) le 6 Fév 2014
+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]

Connectez-vous pour commenter.

Plus de réponses (1)

Jos (10584)
Jos (10584) le 6 Fév 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 commentaire
Elysi Cochin
Elysi Cochin le 7 Fév 2014
thank you so much for explaining me the difference....

Connectez-vous pour commenter.

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by