Get the probability of a matrices

2 次查看(过去 30 天)
I have a matrix 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
I sort the symbols into a table
%calculate the freq%
[a,b]=hist(E1,unique(E1));
out=[b' sum((a),2)];
%Sorting into table%
Table = array2table(out,'VariableNames',{'Symbol','Count'})
%Rearrange table in descending order%
tblB = sortrows(Table,{'Count'},{'descend'})
And the result turns into this
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
So my question is how can I get the probabilities of each symbols in vector?
The desired result is as below
mat=[0.3906 0.125 0.1094 0.1094 0.0938 0.0469 0.0313 0.0156 0.0156 0.0156 0.0156 0.0156 0.0156];

采纳的回答

madhan ravi
madhan ravi 2018-12-15
mat=tblB.Symbol./sum(tblB.Count) %though the pattern is not discernible
  2 个评论
fyza affandi
fyza affandi 2018-12-15
Thank you.
After some corrections , I get the answer.
mat=[];
for matz=1:height(tblB)
mat=[mat,tblB.Count(matz)/sum(tblB.Count)]
end
madhan ravi
madhan ravi 2018-12-15
编辑:madhan ravi 2018-12-15
Anytime :) , if my answer helped you make sure to accept the answer.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by