# Find in a matrix value pair.

3 views (last 30 days)

Show older comments

I have a matrix with 8 column and 250 raw. I need to create a function that read the first two column and and analyze the combination of this two value. For Example the matrix is

A|B|...

A|C|...

C|A|...

A|C|...

C|A|...

and I would like to have as output the single value pairs and the repetitions number . For example : A|B|1

A|C|2

C|A|2...

Could you help me please?

##### 3 Comments

Chandra Kurniawan
on 15 Dec 2011

I got little confused.

What does 'analyze the combination of this two value' means?

Can U tell me?

### Accepted Answer

Andrei Bobrov
on 19 Dec 2011

k = { 'bc' 'ec'

'ed' 'cd'

'dc' 'ec'

'bc' 'be'

'ed' 'cd'

'ed' 'ae'

'bc' 'ec'

'ba' 'bb'

'ca' 'aa'

'ab' 'ad'}

[a,c,c] = unique(k);

B = reshape(c,size(k));

[N,M,M] = unique(B,'rows');

p = histc(M,1:max(M));

out = [a(N),num2cell(p)];

##### 2 Comments

Fangjun Jiang
on 19 Dec 2011

### More Answers (1)

the cyclist
on 15 Dec 2011

I think I understand what you want to do. It can be done in three steps:

- Isolate the first two columns of your array:

>> x = A(:,[1 2]);

- Find the unique two-element combinations (i.e. unique rows):

>> [ux,i,j] = unique(x,'rows')

- Find the frequency count of the indices to those rows:

>> count = hist(j,unique(j))

I was not able to test this out, so you should think it through and test it, but I think those are the basic elements.

##### 20 Comments

the cyclist
on 19 Dec 2011

As I said in a prior comment, you have to download that function from here: http://www.mathworks.com/matlabcentral/fileexchange/25917-unique-rows-for-a-cell-array

Then put that function in your working directory, or somewhere in your path.

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!