MATLAB: Find number of row in a table.

arraymatrixtable

I have the following table
tblB =
Symbol Count
______ _____
1 25
3 8
2 7
5 7
4 6
10 3
8 2
11 1
12 1
14 1
15 1
16 1
21 1
which is based on the matrix E1 below
E1 =
1 1 4 5 1 1 3 1
1 1 2 5 1 1 1 1
3 4 1 3 5 10 5 4
4 2 3 4 5 8 4 1
1 2 12 16 1 1 3 3
1 2 10 14 1 1 1 1
1 1 10 8 2 5 3 15
5 2 1 3 2 21 1 11
How can I find the number of row for the symbol of the matrix.?
For example for E1(1,1) is from row 1 of tblB and so on….
row = [1 1 5 4 1 1 2 1......]

Best Answer

Preliminaries...
E1 =[1 1 4 5 1 1 3 1
1 1 2 5 1 1 1 1
3 4 1 3 5 10 5 4
4 2 3 4 5 8 4 1
1 2 12 16 1 1 3 3
1 2 10 14 1 1 1 1
1 1 10 8 2 5 3 15
5 2 1 3 2 21 1 11];
u=unique(E1);
n=histc(E1(:),u);
[n,ix]=sort(n,'descend');
t=table(u(ix),n,'VariableNames',{'Symbol','Count'});
Now the magic...
>> arrayfun(@(x) find(x==t.Symbol),E1)
ans =
1 1 5 4 1 1 2 1
1 1 3 4 1 1 1 1
2 5 1 2 4 6 4 5
5 3 2 5 4 7 5 1
1 3 9 12 1 1 2 2
1 3 6 10 1 1 1 1
1 1 6 7 3 4 2 11
4 3 1 2 3 13 1 8
>>