MATLAB综合性实验报告7.doc
文本预览下载声明
实验目的:
1.结合实际问题展现MATLAB在生活和学习方面的广泛应用;
2.学会利用MATLAB编程并求解实际问题;
3.学会并运用for循环和switch结构,以及MATLAB中已有函数,如sum;
4.了解单元数组cell和结构数组struct的作用,学会创建这些数组。
二、实验仪器、设备或软件:
电脑、MATLAB软件
三、实验内容:
1、编写一个学生成绩管理的函数程序:将学生成绩按五个等级划分:优秀(90以上),良好(80-90),中等(70-79),及格(60-69),不及格(60以下)对输入的学生成绩按五个等级划分后,打印学生姓名,得分,等级,并计算全班最高分、最低分、平均分。
2、自选函数,运用plot进行绘图。并使用movie以及moviein,制作函数极限动画。
四、实验记录:
1、学生成绩管理程序
实验代码:
clear
for i=1:10
a{i}=89+i;
b{i}=79+i;
c{i}=69+i;
d{i}=59+i;
end
c=[d,c];
Name=input(please input name:);
Score=input(please input score:);
n=length(Score);
Rank=cell(1,n);
S=struct(Name,Name,Score,Score,Rank,Rank);
for i=1:n
switch S(i).Score
case 100
S(i).Rank=满分;
case a
S(i).Rank=优秀;
case b
S(i).Rank=良好;
case c
S(i).Rank=及格;
case d
S(i).Rank=不及格;
end
end
disp([学生姓名 ,得分 ,等级]);
for i=1:n
disp([S(i).Name,blanks(6),num2str(S(i).Score),blanks(6),S(i).Rank]);
end
s=0;
for i=1:n
s=S(i).Score+s;
end
averscore=s/n;
t=S(1).Score;
for i=1:(n-1)
if(S(i).ScoreS(i+1).Score)
t=S(i+1).Score;
end
end
m=S(1).Score;
for i=1:(n-1)
if(S(i).ScoreS(i+1).Score)
m=S(i+1).Score;
end
end
disp([平均成绩]);
disp([averscore]);
disp([最高分]);
disp(t);
disp([最低分]);
disp(m);
实验运行结果:
实验总结:
这是我第一次接触matlab并运用matlab解决实际问题,在以前学习C++的时候,解决一个问题的代码会很繁琐。但相同的问题,在matlab中却变得很简单。这就是matlab的强大之处。运用它可以方便的解决许多实际问题。
知道了这一点,我决心以后会认真的学习这样一门课程。同时,它也给我们枯燥的数学公式的学习带来了动手解决实际问题的机会。是将理论与实际相结合的方法。让我们更加体会到知识的力量是强大的,我们应该更好的掌握科学技术和相关理论知识,并能够将其运用于实际生活当中。
在解决这个问题的时候也确实遇到了一些问题。比如如何输入符号数组和数值数组的问题,当时一直不理解。当通过查询资料,和同学讨论,最后明白了。输入符号时,符号要用单引号,而数据就不需要了。
通过这样一次实践,我更加明白了动手的必要性。只有理论知识是远远不够的。所以以后一定要加强自己的动手能力,勤动手。
2、函数极限问题
实验代码:
clear
m=moviein(16);
hold on
for i=1:50
for j=1:i
t1=(j-1)*5;
t2=j*5;
t=t1:0.01:t2;
axis([0,40,-1,1])%限制动画的坐标显示大小
plot(t,0,.r)
plot(t,1./t,.)
end
m(:,i)=getframe;
end
movie(m,50)
clear
m=moviein(16)
hold on
for i=1:10
for j=1:i
t1=(j-1)
显示全部