MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

### Discover what MATLAB® can do for your career.

Asked by Elysi Cochin on 6 Feb 2014
Latest activity Commented on by Elysi Cochin on 7 Feb 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`

## Products

No products are associated with this question.

Answer by Azzi Abdelmalek on 6 Feb 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))
```

Elysi Cochin on 6 Feb 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) on 6 Feb 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]
```
Answer by Jos (10584) on 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 Comment

Elysi Cochin on 7 Feb 2014

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