1、matlab实验报告Matlab编程及系统仿真结业报告专业年级: 2011级通信工程 学 号: 110143031118 姓 名: 许志远 指导教师: 刘芳 2013年 1月 11 日目录1、实验一二、实验二三、实验三四、实验四五、实验五六、实验六七、实验七八、实验八九、实验九十、实验十十一、实验十一十二、实验十二1、 用蓝色虚线绘制星型线在的图形源代码:theta=0:0.01:2*pi; %设置中间变量及步长x=2*cos(theta).3; y=2*sin(theta).3; plot(x,y,b-) % “b”表示运用蓝色线,“-”表示做虚线程序截图:2、编写一个函数,使其能产生如下分
2、段函数:,并调用此函数,绘制x在0,9,y在0,1.5上的f(x)的曲线,要求给x,y轴标注,并指出最大值的位置,写出完整的程序。源代码:x=0:0.1:9;y=(0.5*x).*(x=0&x2&x6&x syms x u=exp(-2*x) u = exp(-2*x) v=sin(x) v =sin(x) r1=int(u*v,0,+inf)r1 = 1/5程序截图:4、从键盘输入一串字符,找出该字符串中所有的数字,并保存成数值数组Digital。源代码: f=abc123def; index=find(f=0&f A=f(index); for y=1:length(A)for y=1:l
3、ength(A)Digital=str2num(A);end Digital end Digital = 123Digital = 123Digital = 123程序截图:5、将一个屏幕分成4幅,在左上福和右下幅分别绘制下列函数的图形:(1) ,绘制x在-pi/2,pi/2 的红色曲线图;(2),绘制该函数,蓝色。源代码:syms x y %定义X、Yf1=(abs(sin(x)0.5; %F1与X之间的函数关系f4=(x2/32+y2/42); %F4与X、Y之间的函数关系subplot(2,2,1) %将图像分为2*2的区域并在第一个区域画图h1=ezplot(f1,-pi/2,pi/2
4、) %画图并标注X的范围set(h1,Color,red) %将图像默认的颜色改为红色title(f1=(abs(sin(x)0.5) %标注函数名称subplot(2,2,2)subplot(2,2,3)subplot(2,2,4) %在第四个区域画图h4=ezplot(f4-1,-3,3,-4,4) %画图并标注X、Y的范围set(h4,Color,blue) %将图像的默认颜色转化为题目规定的颜色title(f4=(x2/32+y2/42) %标注函数名称程序截图:6. 以构架数组表示3个人的基本信息,构架数组的每一个构架表示一个人的信息。三个人的基本信息如下:姓名( Name )Xuj
5、ia wanglibohuangweiguo年龄( Age )202120成绩( Score )8510052成绩按如下划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79), %不及格(60),请标出每个学生的成绩等级。源代码:for i = 1:10 a(i) = 89+i; b(i) = 79+i; c(i) = 69+i; d(i) = 59+i;endc = d,c; %及格范围6079Name = xujia 20,wanglibo 21,huangweiguo 22; %元胞数组Mark = 100,85,52,;Rank=cell(1,3); %创
6、建一个1*3的构架数组S,它有三个域。S = struct(Name,Name,Marks,Mark,Rank,Rank);for i = 1:3 switch S(i).Marks case 100 %得分为100时 S(i).Rank = 满分; %列为满分等级 case num2cell(a) %得分在90和99之间 S(i).Rank = 优秀; %列为优秀等级 case num2cell(b) %得分在80和89之间 S(i).Rank = 良好; %列为良好等级 case num2cell(c) %得分在60和79之间 S(i).Rank = 及格; %列为及格等级 otherwi
7、se %得分低于60 S(i).Rank = 不及格; %列为不及格等级 endend%将学生姓名,得分,登记等信息打印出来disp(学生姓名 , 年龄, 得分, 等级);disp( )for i=1:3; disp( S(i).Name, blanks(6), num2str(S(i).Marks),S(i).Rank );end结果:学生姓名 年龄 得分 等级 xujia 20 100 满分 wanglibo 21 85 良好 huangweiguo 22 52 不及格程序截图:7.创建脚本实现随机数序列的各元素由大到小排列,其中随机数服从U(-5,9)的均匀分布,并且序列长度为10。.源
8、代码:a=14*rand(1,10)-5;for i=1:10 for j=1:10-i if a(j)a(j+1) t=a(j); a(j)=a(j+1); a(j+1)=t; end endend;a程序截图:8.已知ln(1+x)的泰勒展开式为:,要求从键盘输入x的取值,由展开式计算ln(1+x)的值,迭代结束的条件为:要加入的下一项系数小于默认的精度eps。要求程序显示系数k以及展开式的结果。(x1)源代码:function s=m6x=input(请输入一个介于0到1的数);a=1;b=1;s=0;for i=1:10000000 if abs(b./i) a=2*rand(1,40
9、)-1; disp(最大值为:,num2str(max(a);disp(最小值为:,num2str(min(a);disp(平均值为:,num2str(mean(a);disp(中间值为:,num2str(median(a);disp(所有数字和为:,num2str(sum(a);disp(标准差为:,num2str(std(a);disp(方差为:,num2str(var(a);a_number a_sort=sort(abs(a);disp(绝对值大小的顺序:,num2str(a(a_sort);disp(原来的序列号为:,num2str(a_sort);结果:中间值为: 0.11464所
10、有数字和为:3.6234标准差为: 0.45747方差为: 0.20928绝对值大小的顺序:0.0056258 -0.0068951 0.068158 0.083348 0.093142 -0.11024 0.13614 -0.14222 0.18713 -0.24104 0.24262 -0.24325 -0.25917 0.28982 -0.31606 -0.31761 0.32046 0.36255 0.36445 -0.38142 0.38913 -0.39077 -0.39447 0.3958 0.40548 0.41894 -0.42055 0.45423 -0.61314 -0.
11、62069 0.63595 0.64326 0.66359 0.67624 0.67699 -0.69825 0.70731 0.72002 0.79954 -0.96072原来的序列号为:6 21 30 14 37 38 34 8 20 4 40 17 35 24 27 29 26 3 12 32 39 9 13 16 36 7 28 31 11 10 25 23 5 1 33 15 19 18 22 2程序截图:10、在一个坐标轴中绘制图形y1=sin(x)和图形y2=e(x-1)2,要求(1)对坐标轴进行标注,x轴名称为“x”,y轴名称为“y1和y2”;(2)用legend函数在图形窗口
12、的左上角区分两个图形,图形1的曲线为红色,点划线,图形二的曲线为蓝色,实线。源代码: x1=0:0.01:2*pi;y1=sin(x1);plot(x1,y1,r-.)hold onx2=0.1:0.01:2;y2=exp(x2-1).2);plot(x2,y2,b-)xlabel(x);ylabel(y1 y2);legend(y1,y2,2)程序截图:11. 现有table.txt文件存放某班级n个学生的成绩(没有相同的成绩且n为奇数),打开该文件,找出其中间值,并将其放在所有成绩构成的数组的中间位置,其它成绩的相对位置不变。源代码:clear;clc;b=input(请输入成绩的个数:)
13、;for i=1:b a(i)=input(请输入成绩:);endfid=fopen(table.txt,w);count=fwrite(fid,a,int32);closestatus=fclose(fid);clear;clc;fid=fopen(table.txt,r);a=fread(fid,int32);d=a;disp(原来的数字顺序是:,num2str(d);b=numel(a);disp(the number=,num2str(b);a_mediian=median(a)c=find(a_mediian=a);e=(b+1)/2;if c1d(i)=d(i-1);i=i-1;e
14、ndd(1)=t;endelseif cefor j=e+1:ct=d(1);for i=1:b-1d(i)=d(i+1);endd(b)=t;endelseenddisp(插入后的数字顺序:,num2str(d);程序截图:12、现有table.txt文件存放某班级15个学生的成绩,打开该文件,将其中90分以上的成绩放在矩阵A中,8089放在B中,7079放在C中,6069放在D中,60分以下放在E中,统计各矩阵中的学生人数,并显示,统计所有学生的最高分和最低分,并显示,计算及格率和不及格率,并显示。源代码:clear;clc;fid=fopen(table.txt,r); %打开第11题的
15、table.txt的数据a=fread(fid,int32);closestatus=fclose(fid); %关闭文件b=a;disp(第11题数据为:,num2str(b);c=numel(b)m=0;n=0;k=0;j=0;l=0;for i=1:c if b(i)=90 m=m+1; A(m)=b(i); elseif b(i)=80&b(i)=70&b(i)=60&b(i)=69 j=j+1; D(j)=b(i); else l=l+1; E(l)=b(i); endenddisp(90分以上的有:,num2str(numel(A);disp(80分以上的有:,num2str(nu
16、mel(B);disp(70分以上的有:,num2str(numel(C);disp(60分以上的有:,num2str(numel(D);disp(不及格的有:,num2str(numel(E);disp(最高分有:,num2str(numel(b);disp(最低分有:,num2str(numel(b);e=numel(E);f=e/c;disp(不及格率:,num2str(f);程序截图:对Matlab实用教程课程的学习及本次实验的感想:在学习Matlab时,不免要和之前学过的C语言进行比较。相较而言,Matlab的优点还是有很多的,最大的优点是,它的程序语言更贴近于生活语言,所以在编写代码时,比C语言要简洁的多。在学习本课程的过程中,我也遇到了刘芳老师之前谁说过的情况:把matlab和C语言在一定程度上有一些混淆。根本原因在于之前的C语言学的不是太深,也不是很差。因此,深入理解matlab是很重要的。 本次实验中,题目难度不一,最后两题用到了文件的存储与读取,之前的C语言课程设计也用到了文件的相关知识,总的来说,对我还是有一定难度的。同时,实验题中,有很多细节的东西,很多标示符需要精确记忆,这也是matlab的特色,通过实验,巩固了所学知识,也拓展了很多未深入讲解的知识。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1