为要计算的信息熵
为某个字母在这段字符中的出现概率
str=input("please input a word or a sentence using small letter without space. \neg:'godd' :")
str_letter=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
re_shang=zeros(1,26);
%统计目标单词中,26个字母的出现情况
for j=1:length(str_letter)
re_shang(j)=count(str,str_letter(j));
end
P_shang=re_shang./length(str);
H=0;
for j=1:length(str_letter)
if P_shang(j)~=0
H=H-P_shang(j)*log10(P_shang(j));
end
end
disp(['The H of ' ,str, ' is ', num2str(H), '.']);
%H为最后计算结果
代码运行效果