Borrar filtros
Borrar filtros

please help me sort this out

1 visualización (últimos 30 días)
Elysi Cochin
Elysi Cochin el 6 de Feb. de 2014
Comentada: Elysi Cochin el 7 de Feb. de 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

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 6 de Feb. de 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 comentarios
Elysi Cochin
Elysi Cochin el 6 de Feb. de 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) el 6 de Feb. de 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]

Iniciar sesión para comentar.

Más respuestas (1)

Jos (10584)
Jos (10584) el 6 de Feb. de 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 comentario
Elysi Cochin
Elysi Cochin el 7 de Feb. de 2014
thank you so much for explaining me the difference....

Iniciar sesión para comentar.

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!

Translated by