freq_stat.m

来自「本代码参考David《数据压缩原理与应用》P71-P82,实现了有限精度的算术编」· M 代码 · 共 30 行

M
30
字号
%******************************************************************************************
% 计算符号的概率,累计频率以及频率范围
%******************************************************************************************
function p=Freq_Stat(x)

xt=x; % 暂存原始数据
maxx=99; % 定义最大值,避免重复扫描
count1=1;count2=1;
Len=length(x);
% 定义结构体数组用于存储序号,符号,该符号的频率
P=struct('Num',[],'Value',[],'Freq',[]);
for i=1:Len
if xt(i)==maxx
i=i+1;
else
for j=i+1:Len
if xt(j)==x(i)
count1=count1+1; % 频率加1
xt(j)=maxx;   %%%%?????
end
end
P(count2).Num=count2;
P(count2).Value=x(i);
P(count2).Prob=count1/Len;%%
P(count2).Freq=count1;
count2=count2+1;
count1=1;
end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?