我想用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)
例子文档
输出结果
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