Find number of row in a table.

14 visualizzazioni (ultimi 30 giorni)
fyza affandi
fyza affandi il 24 Dic 2018
Modificato: dpb il 25 Dic 2018
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......]
  1 Commento
Image Analyst
Image Analyst il 24 Dic 2018
Modificato: Image Analyst il 24 Dic 2018
E1(1,1) is 1. So you want to find every row of tblB that has equals E1(1,1)?
Like
rowsWith1 = tblB{:, 1} == E1(1,1) | tblB{:, 2} == E1(1,1);
Please clarify. How are you getting the columns (values) in your row vector called "row" from tblB and E1(1,1)?

Accedi per commentare.

Risposta accettata

dpb
dpb il 24 Dic 2018
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
>>
  2 Commenti
fyza affandi
fyza affandi il 24 Dic 2018
Thank you so much :)
dpb
dpb il 24 Dic 2018
Modificato: dpb il 25 Dic 2018
No problem...glad to help. :)
BTW, be aware that the data of the table t is embedded in the anonymous function when the function is defined. Thus if the data in the table change, you must also redefine the function...that happens automagically as written but if you were to define a separate function handle first and then change the data, then the existing function handle wouldn't know anything about that new data...

Accedi per commentare.

Più risposte (1)

KSSV
KSSV il 24 Dic 2018
YOu have many functions to get that information. Read about find, ismember and logical sign ==. YOu can access the whole column of table tblB using.
tblB.(1)
tblB.(2)

Community Treasure Hunt

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

Start Hunting!

Translated by