Find number of row in a table.

14 Ansichten (letzte 30 Tage)
fyza affandi
fyza affandi am 24 Dez. 2018
Bearbeitet: dpb am 25 Dez. 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 Kommentar
Image Analyst
Image Analyst am 24 Dez. 2018
Bearbeitet: Image Analyst am 24 Dez. 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)?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

dpb
dpb am 24 Dez. 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 Kommentare
fyza affandi
fyza affandi am 24 Dez. 2018
Thank you so much :)
dpb
dpb am 24 Dez. 2018
Bearbeitet: dpb am 25 Dez. 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...

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

KSSV
KSSV am 24 Dez. 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)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by