matlab提取Excel数据并计算概率

我想用matlab读取Excel里面的第一列数据并计算这些数据分别出现的概率,比如一共有100列,23这个数据出现了10次,它的概率就是0.1

可以转换成二元组,不同的数为key,没出现一次value加一就好

你好,可以用readexcel函数

T = readtable('exam.xlsx');
a = T{:,1}; %获得第一列数据
[q,ia,ic] = unique(a,'rows');
counts = zeros(size(q));
for i = 1:1:numel(a)
    counts(ic(i)) = counts(ic(i)) + 1;
end
% 求概率
value = q;
possibility = counts/sum(counts);
TT = table(value, possibility)

例子文档

img

输出结果

TT =

  8×2 table

    value       possibility    
    _____    __________________

       1     0.0714285714285714
       2      0.142857142857143
       3      0.142857142857143
       4      0.285714285714286
       5     0.0714285714285714
      45      0.142857142857143
     534     0.0714285714285714
    3144     0.0714285714285714