实验一英文文本信息量的计算-Read
实验一 英文文本信息量的计算
一 实验目的
1 通过本实验熟悉Matlab软件编程环境
2 编写M文件实现对英文文本信息量的计算,掌握信源熵的计算方法
二 实验要求
2 编写程序实现英文文本信息量的统计,掌握信源熵及信息量的计算方法
三 实验步骤
1 安装matlab软件(已完成)
2 建立文件夹D:信息论与编码实验lab1,将待统计英文文本拷贝至该文件夹中
3 运行matlab软件,点击桌面的matlab快捷方式图标,或从“开始”菜单启动matlab软件
4 熟悉matlab软件环境
5 新建M文件(file菜单中选择new即可),录入英文文本信息统计程序,将程序保存在建立文件夹D:信息论与编码实验lab1中(注意:文件名应用英文命名)
6 将matlab当前的路径设置为D:信息论与编码实验lab1
7 运行M文件,方式一:在M文件编写界面中点击DEBUG菜单项,选择RUN;方式二:在matlab的命令窗口中输入文本信息统计程序的名称后,输入“回车”,并记录运行结果。
8 运行结果将在“command”区域(matlab主界面的右侧)中显示,程序中的变量将在“workspace”区域(matlab主界面的左侧)中显示,点击各变量可观察其具体值,记录结果。
9 改变文本信息(english.txt),插入大写英文字母,及标点符 ,记录、分析运行结果。
10 认真阅读程序,对每条语句写出相应注释,并画出程序流程图。
11 在完全理解程序的基础上,对程序进行改进,使之可对大小写均存在的英文文本进行信息量的统计。
四 告要求
五 附英文文本信息量统计程序(只针对全部都是小写字母,且无标点符 的英文文章)
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))
N(1,double(wenzhang(i,1))-96)= N(1,double(wenzhang(i,1))-96)+1;
end
end
%统计各字母出现的个数,存入N数组中
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) %计算信源熵
信息论与编码实验一:英文文本信息量的统计
1
菜单栏
实验一:(题目)
一 实验目的要求
二 实验运行结果记录
三 给定程序的流程图,及每条语句的注释
四 自己编写的改进程序,及运行结果记录
五 实验小结
Matlab当前工作路径
Matlab“workspace”区域
Matlab“command”区域
Matlab主界面
Matlab的M文件编程环境
M文件程序录入区
相关资源:SRTApp:学生投票追踪器-其它代码类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!