1、matlab实验指导书 作者: 日期:2 个人收集整理 勿做商业用途实验1 熟悉软件环境和基本的操作一、实验目的熟悉MATLAB运行环境和了解基本操作。二、实验内容MATLAB的启动、操作界面组成1熟悉MATLAB图形界面打开MATLAB,单击命令窗口菜单栏中的各个下拉菜单按钮,试使用各个按钮引出的选项;把光标移动到工具栏中各个图标上(不要按下),查看它们与菜单选项的对应情况。2熟悉MATLAB的基本命令。在命令窗口中分别键入以下内容,以建立若干变量:A=1 2;3 4;5 6B=7,8,9;10,11,12C=5 6 7;1 8 3;D=B+C问题1:如何输入一个矩阵变量的行元素和列元素?
2、问题2:观察每行命令后是否加“;”,对显示执行结果有什么区别?键入以下命令或执行操作,查看效果,并体会命令功能:(1)工作空间管理。whowhosclear A(2)路径编辑。试用菜单File/Set Path将D盘根目录及其下的所有子目录和文件夹包含进来,设为搜索路径。问题3:当前路径是什么?问题4:搜索路径是什么意思?(3)联机帮助help pausehelpwin(4)窗口清理。先画出正弦函数在0-2之间的图形,再用以下各种窗口清理命令,看每项命令都清除了什么。figureplot(sin(0:0。1:6.28)cla clfclose注意:figure为打开一幅图形图像窗口close为
3、关闭当前图形图像窗口,而close all为关闭所有已打开的图形图像窗口。(5)MATLAB基本矩阵操作演示 playshow intro(6)MATLAB图形绘制演示 playshow buckydem(7)MATLAB数学功能演示(快速傅氏变换) playshow fftdemo (8)MATLAB三维造型演示(茶壶演) playshow teapotdemo3打开MATLAB命令窗口,键入demos,观看演示程序。三、思考题1将pi分别用15位数字格式、分数格式、十六进制格式、5位数字的科学计数法显示.实验2矩阵的建立和基本运算(1)一、 实验目的熟悉和掌握MATLAB中关于矩阵变换以及
4、矩阵运算的各种命令.二、 实验内容1数、数组、矩阵的输入(1)数的输入 a=5 b=2-5i(2)数组的输入 c=1,3,5,7,9,11 %元素之间要用逗号用空格分开 d=1:2:11 e=linspace(1,11,6) 体会以上输入有什么区别和联系.(3)矩阵的输入A=2,3,5;1,3,5;6,9,4 行之间要用分别隔开2矩阵大小的测试和定位A=3,5,6;,2,5,8;3,5,9;3,7,9n,m=size(A)A(1,3)3. 矩阵的块操作A(2,:)A(1,3,:)A(2:3,1:2)问题2。1 如何将A的2,3列互换?4矩阵的四则运算 A=3,5,8;2,3,6;1,4,9 B
5、=rand(3,3) C=A+B D=AB E=A*B 问题2.2 E为矩阵A、B的乘积运算结果,如果要求E的结果为A和B对应元素相乘的结果,应输入什么命令? F=A/B 问题2。3 如果要求F为A,B对应元素作除法运算的结果,应输入什么命令?5矩阵的点运算A=1 2;3 4;B=5 6;7 8;ABA。BA2A。26矩阵的逻辑运算A=1 2;3 4; B=0 6; 0 8; A | BA&Bxor(A,B)a=5;b=-10;(b=0)&(a/b5)(b= =0)|(a/b0)a三、思考题1输入一个矩阵A,取出A的第2行第1列的元素;取出A的第1,3,4列的所有元素;让A的第1列和第3列互换
6、;删除A的第二列。2用MATLAB可以识别的格式输入下面两个矩阵. 再求出它们的乘积矩阵C,并将C矩阵的右下角23子矩阵赋给D矩阵,赋值完成之后,调用相应的命令,查看MATLAB工作空间的情况。3。已知,B=,求i)AB-2A ii)AB iii)A。*B iv)AB-B*A4.已知x=1 2 3,y=4 5 6,试计算z=x.y、x./y和x。y。5。 解线性方程:6.解方程组:实验3矩阵的建立和基本运算(2)一、实验目的熟悉和掌握MATLAB中各种矩阵生成函数。二、 实验内容1随机矩阵的产生 A=rand(5,5) %产生55均匀分布随机矩阵 B=randn(5,5) %产生55正态分布随
7、机矩阵2。 单位矩阵的产生 A=eye(3,3) %产生33单位阵3. 全零、全1矩阵的产生 A=zeros(3,3) B=ones(3,3)4. 矩阵的翻转操作 A=rand(5,4) flipud(A) 进行上下翻转 fliplr(A) %进行左右翻转 rot90(A) %逆时针旋转90度5。 矩阵线性代数方面的运算 A=1,3,5;4,9,3;2,0,5 A %A转置 det(A) A的行列式,A必须是方阵 rank(A) A的秩 inv(A) A的逆 问题3.1 矩阵A在什么时候不能求逆? eig(A) %A的特征矢量X,D=eig(A) A的特征矢量及特征值A2 %矩阵A的幂运算6.
8、 构造多维数组 A1=1,2,3;4,5,6;7,8。9; A2=A1,A3=A1A2cat(1,A1,A2,A3)cat(2,A1,A2,A3) cat(3,A1,A2,A3)7. 字符串变量及其处理 s=Hello s=s;Hello whos s n=input(How many apples) 先显示单引号中的字符串,向用户提示,再把%用户键入的数字或表达式赋给n三、思考题1产生34维全1矩阵,产生42维的随机矩阵,产生44的单位矩阵。 2将A的第2行元素扩大2倍后作为A的第3行元素.3输入任意矩阵A、B(它们的元素个数相等),命令A(: )和A(: )=B会产生什么结果?4A=1,3
9、,5; 5,8,3;6,1,6,B=3,6;9,3;4,7,C=3,7,9;4;5,7,D=2:6,体会命令A,B,A;C,A,B;D所产生的结果,学习由小矩阵生成大矩阵的方法。5.计算表达式的值。6.已知矩阵A=5 2;9 1,B=1 2;9 2,做简单的关系运算AB,A=B,AB,并做逻辑运算(A=B)&(AB),(A=B)&(AB)。实验4图形绘制(1)一、实验目的熟悉和掌握MATLAB基本的二维图形绘制函数。二、实验内容1绘制简单的二维图形 t=0:0.1:2pi y=sin(t) plot(t,y)2一个坐标系绘制多幅图形 t=0:0。1:2pi; y1=sin(t); y2=cos
10、(t); y3=y1.*y2; plot(t,y1,-r,t,y2,:g,t,y3,x) plot(t,y1,c,t,y2,-.y,t,y3,d)3.图形标识和坐标控制 t=0:0.1:2pi y=sin(t) plot(t,y) grid on,xlabel(时间),ylabel(幅值),title(正弦曲线) axis(1,8,-1。2,1。2)4。交互式图形指令axis(0,5,0,5);hold on;box on;x=;y=;while(1) x1,y1,button=ginput(1); if(button=1) break; end plot(x1,y1,o);x=x,x1;y=
11、y,y1;endline(x,y);hold off;gtext(用左键取点,然后划线);三、思考题1.在同一坐标系绘制t3,-t2,t2sint在0,2内的曲线图。2.在同一图形窗口画三个子图,要求使用指定gtext、axis、legend、title、xlabel和ylabel:(1)(2)(3)3.绘制的图像,要求用蓝色的星号画图;并且在同一坐标轴中画出其包络线的图像,用红色的点划线画图。实验5图形绘制(2)一、实验目的熟悉和掌握MATLAB的多种二维图形绘制函数。二、实验内容1二维图形绘制函数x=2:0。1:2; y=sin(x);subplot(221),stairs(x,y), t
12、itle((a) stairs)subplot(222),compass(cos(x),y),title((b) compass)y1=randn(1,10000);subplot(223),hist(y,20),title((c) hist)subplot(224),u,v=meshgrid(2:0。2:2,1:0.15:1);z=u。exp(-u。2v。2); px,py=gradient(z,0。2,0.15);contour(u,v,z),hold onquiver(u,v,px,py),hold off,axis imagetitle((d) quiver)2误差限图绘制函数x=-2
13、:0.2:2;y=sin(x);L=rand(1,length(x))/10;U=rand(1,length(x)/10;errorbar(x,y,L,U,:)3.复数图绘制函数z=2+3i,2+2i,1-2i,4i,-3; x=2,2,1,0,-3; y=3,2,2,4,0;subplot(1,2,1),compass(z,r)subplot(1,2,2),feather(x,y,b)4.条形图与直方图绘制函数x=-pi:0。15:pi; y=sin(x);subplot(2,1,1), H=bar(x,y);xx=get(H,xdata);yy=get(H,ydata);subplot(2
14、,1,2),plot(xx,yy);三、思考题1取合适的范围,在同一图形窗口绘制下4幅极坐标图。 (1) (2)(3)(4)2某校共有1560名学生,其中计算机系有213名学生,外语系有387名学生,音乐系有220名学生,美术系有280名学生,中文系有280名学生,理科系180名学生,分别画出饼图、条形图示意学生分布。实验6图形绘制(3)一、实验目的熟悉MATLAB的三维图形绘制函数。二、实验内容1标准球面绘制程序1。subplot(2,2,1),sphere(3);title(n=3),axis equalsubplot(2,2,2), sphere(6);title(n=6),axis e
15、qualsubplot(2,2,3), sphere(10)title(n=10),axis equalsubplot(2,2,4), sphere(15);title(n=15),axis equal2标准球面绘制程序2。t=linspace(pi/2,3。5pi,50);R=cos(t)+2;subplot(2,2,1);cylinder(R,3), title(n=3);subplot(2,2,2)cylinder(R,6),title(n=6);subplot(2,2,3)cylinder(R),title(n=20)subplot(2,2,4)cylinder(R,50),title
16、(n=50)3。绘制三维网格图 绘制下面给出的二元函数的网格图.x,y=meshgrid(8:0。5:8,10:0。5:10);R=sqrt(x。2+y.2)+eps;z=sin(R)./R;mesh(x,y,z);4.绘制三维网格图x=-pi:0.15:pi; y=sin(x);subplot(2,1,1), H=bar(x,y);xx=get(H,xdata);yy=get(H,ydata);subplot(2,1,2),plot(xx,yy);三、思考题1试绘制出 的三维曲面图和三视图。2绘出函数的慧星效果图.实验7程序设计(1)一、实验目的熟悉和掌握MATLAB的m文件程序和程序设计.
17、二、实验内容1for 循环结构 for i=1:10; x(i)=i;end;x2while循环结构 Fibonaci数组的元素满足Fibonacci规则:且。现要求该数组中第一个大于10000的元素。a(1)=1;a(2)=1;i=2;。while a(i)=10000 a(i+1)=a(i-1)+a(i); i=i+1;end;i ,a(i)3.if-else-end结构cost=10;number=12;if number8 sums=number*0。95cost;end,sums4.M文件的一般结构 (A)编写一个画任意半径彩色线型的圆。(B)完整函数文件的基本结构。(C)函数文件各
18、基本组成部分的作用.function sa=functiondemo(r,s)% CIRCLEif nargin2 error(输入变量太多.);endif nargin=1 s=b;end;clf;t=0:pi/100:2*pi;x=r*exp(i*t);if nargin=2 plot(x,s);else sa=pi*rr; fill(real(x),imag(x),s)endaxis(square)三、思考题1编写函数文件,分别用for和while循环语句编写程序,求出 之和,并比较算法的运算时间。2.用MATLAB语言实现下面分段函数:x由键盘输入。 3。用for-end循环求出从10
19、0200之间的所有素数。4。用while-end循环求1-100的所有数值和。实验8程序设计(2)一、实验目的熟悉和掌握MATLAB程序编写和调试的常用函数。二、实验内容1input:请求用户输入信息reply = input(请输入一个字符 ,s);2.menu:为用户输入选择菜单t=0:0.1:2pi;y1=sin(t);y2=cos(t);y3=y1。y2;k=menu(菜单,菜单1,菜单2,菜单3);if k=1 plot(t,y1,r) elseif k=2 plot(t,y2,g)else plot(t,y3,b)end3。pause:程序暂停执行 pause(5) % 程序暂停执
20、5秒4.global:定义全局变量 假设工作空间中已有全局变量a,执行完下述函数后,观看工作空间中的变量有何变化。function z=example9_1()global a;a=5;b=10;z=a+b;三、思考题1. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。2.求之值,其中a是一个数字.例如:2+22+222+2222+22222(此时n=5),a和n由键盘输入。3.编写程序,判断某一年是否为闰年,闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996年和2004年;(2)能被100整除,又能被400整除的年份是闰年,如1600年和2000
21、年。不符合这两个条件的年份不是闰年.(提示:rem命令可以计算两数相除后的余数。)实验9MATLAB应用一、实验目的了解MATLAB在曲线拟合、插值和解线性方程方面的应用二、实验内容1曲线拟合 已知离散点上的数据集(x1,y1),(x2,y2),(xn,yn),求得一解析函数y=f(x),使f(x)在原离散点xi尽可能接近给定yi值,这一过程叫曲线拟合,最常用的曲线拟合是最小二乘拟合,拟合结果可使误差的平方和最小,即找出使最小的f(x)。 x=0.5,1.0,1。5,2.0,2.5,3.0;y=1.75,2。45,3。81,4.80,7.00,8。60;p=polyfit(x,y,2);x1=
22、0.5:0。05:3.0;y1=polyval(p,x1);plot(x,y,*r,x1,y1,-b); 2一维插值 year=1900:10:2010product=75.995,91。972,105。711,123.203,131。669,.。 150.697,179。232,203。212,226.505,249。633,256.344,267。893;p2005=interp1(year,product,2005)x=1900:1:2010y=interp1(year,product,x,cubic);plot(year,product,o,x,y)3。解常微分方程二阶微分方程可改写成
23、两个耦合的一阶微分方程模拟这个系统的第一步是建立微分方程的M文件,随意取名作difeq.m,其内容是:function xdot=difeq(t,x)xdot=zeros(2,1);xdot(1)=x(1).*(1-x(2)。2)x(2);xdot(2)=x(1);为了在的范围内模拟该方程,可引用ode45函数求解并画出其图形。t0=0; tf=20;x0=0 0.25;t,x=ode23(difeq,t0,tf,x0);plot(t,x)三、思考题1。求定积分式中2。求解描述振荡器的经典的Ver der Pol微分方程,。3。已知x=1。2 1。8 2.1 2.4 2。6 3.0 3.3,y=4.85 5.2 5.6 6.2 6。5 7。0 7。5,求对x和y进行6阶多项式拟合的系数.附录MATLAB实验报告格式报告人: 年级: 学号: 实验日期: 报告完成日期: 一、实验名称二、实验目的:三、实验内容:(结合实验指导书和课本,列出自己在本次实验中练习或验证了什么)四、回答问题: (回答实验指导书中提出的问题)五、思考题: (回答或编程求解每个实验后列出的思考题)六、遇到的问题及解决: (列出实验和求解思考题的过程中遇到的问题及解决方法)七、体会: (小结出从本次实验中学会了什么,难点是什么,有什么想法和体会)22