Find number of row in a table.
14 次查看(过去 30 天)
显示 更早的评论
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 个评论
Image Analyst
2018-12-24
编辑:Image Analyst
2018-12-24
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)?
采纳的回答
dpb
2018-12-24
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 个评论
dpb
2018-12-24
编辑:dpb
2018-12-25
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...
更多回答(1 个)
KSSV
2018-12-24
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)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!