📄 untitled.m
字号:
wenzhang=textread('english.txt','%c'); %读入英文文章
len=size(wenzhang);
length=len(1,1); %文章的长度为length
N=zeros(1,26);
for i=1:length
if double(wenzhang(i,1))>96 && double(wenzhang(i,1))<=122
N(1,double(wenzhang(i,1))-96)= N(1,double(wenzhang(i,1))-96)+1;
end
end
%统计各字母出现的个数,存入N数组中,注大写字母并未考虑。‘a’的值为97,'z'的值为122,‘A’的值为65,‘Z’的值为90,思考如何处理大小写均存在的文本?
p=zeros(1,26);
p=N/length; %计算各字母出现的概率
I=zeros(1,26);
I=log2(1./p); %计算各字母的信息量
for i=1:26
if p(1,i)==0
I(1,i)=0;
end
end %出现概率为0的字母的信息量赋值为0
sumI=sum(I.*N) %计算整篇文章的总的信息量
Ip=I.*p; %两矩阵对应元素相乘
H=sum(Ip) %计算信源熵
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -