2016秋2014级《MATLAB程序设计》实验指导书共17页,第1页2016秋2014级《MATLAB程序设计》实验指导书实验一MATLAB的基本功能一、实验目的1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。2、掌握MATLAB常用命令的使用。3、掌握MATLAB帮助系统的使用。4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。二、实验内容1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。图1MATLAB工作桌面2、MATLAB的常用命令与系统帮助:(1)系统帮助help:用来查询已知命令的用法。例如已知inv是用来计算逆矩阵,键入helpinv即可得知有关inv命令的用法。lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入2016秋2014级《MATLAB程序设计》实验指导书共17页,第2页lookforinverse,MATLAB即会列出所有和关键字inverse相关的指令。找到所需的命令後,即可用help进一步找出其用法。(2)数据显示格式:常用命令:说明formatshort显示小数点后4位(缺省值)formatlong显示15位formatbank显示小数点后2位format+显示+,-,0formatshorte5位科学记数法formatlonge15位科学记数法formatrat最接近的有理数显示(3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。具体用法如下:↑----重调前一行(可重复使用调用更早的)↓----重调后一行→----前移一字符←----后移一字符home----前移到行首end----移动到行末esc----清除一行del----清除当前字符backspace----清除前一字符(4)MATLAB工作区常用命令:who--------显示当前工作区中所有用户变量名whos--------显示当前工作区中所有用户变量名及大小、字节数和类型disp(x)-----显示变量X的内容clear-----清除工作区中用户定义的所有变量save文件名-----保存工作区中用户定义的所有变量到指定文件中load文件名-----载入指定文件中的数据2016秋2014级《MATLAB程序设计》实验指导书共17页,第3页3、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。(1)计算(365-522-70)3(2)area=pi*2.5^2(3)已知x=3,y=4,232xyzxy在MATLAB中求z:(4)利用who,whos命令查看工作空间内的所有变量,并比较两种命令区别。(5)使用clear命令删除工作空间内的所有变量。提示:MATLAB有一些永久常数(PermanentConstants)如表所示,虽然在工作空间中看不到,但使用者可直接取用。表1.1MATLAB中常用的变量,常量特殊的变量、常量取值ans用于结果的缺省变量名pi圆周率π的近似值(3.1416)eps数学中无穷小(epsilon)的近似值(2.2204e-016)inf无穷大,如1/0=inf(infinity)NaN非数,如0/0=NaN(NotaNumber),inf/inf=NaNi,j虚数单位:i=j=1(6)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。m1=16231351110897612414151执行以下命令,观察结果:m1(2,3)m1(11)m1(:,3)m1(2:3,1:3)m1(1,4)+m1(2,3)+m1(3,2)+m1(4,1)(7)执行命令helpabs,查看函数abs的用法及用途,计算abs(3+4i)。(8)执行命令:2016秋2014级《MATLAB程序设计》实验指导书共17页,第4页x=0:0.1:6*pi;y=5*sin(x);plot(x,y)(9)在matlab的命令窗口里完成如下计算,其中t的值分别取-1,0,1,表达式如下:43sin(43/3)2tyet(10)求方程组的根:1231231234322511612xxxxxxxxx(11)一个多项式的系数向量是p=[1-6-72-27],求这个多项式的根并写出多项式。4、思考题(1)以下变量名是否合法?为什么?a)x2b)3colc)_rowd)for(2)求以下变量的值,并在MATLAB中验证。a)a=1:2:5;b)b=[a'a'a'];c)c=a+b(2,:)2016秋2014级《MATLAB程序设计》实验指导书共17页,第5页实验二MATLAB矩阵及运算一、实验目的1、掌握矩阵和数组的表示与赋值方法2、了解字符串、结构和单元等数据类型在MATLAB中的使用3、掌握MATLAB中基本的数值运算,了解基本统计函数的使用4、掌握多项式基本运算以及线性方程组的求解方法二、实验内容1、利用“:”操作符和linspace函数生成数组a=[0,6,12,18,24,30,36,42],并将数组a分别转化为4*2和2*4的矩阵。2、在MATLAB中输入矩阵3681-5722176916-121513-210A,并使用MATLAB回答以下的问题:(1)创建一个由A中第2列到第4列所有元素组成的4Χ3数组B;(2)创建一个由A中第3行到第4行所有元素组成的2Χ4数组C;(3)创建一个由A中前两行和后三列所有元素组成的2Χ3数组D;(4)根据A利用单下标方法和双虾标方法分别创建向量a=[-5615]和向量b=[681],并利用向量a和b生成矩阵5668151E;(5)利用“[]”删除矩阵A的第二行和第三列。3、利用ones()函数和zero()函数生成如下矩阵:0000001110013100111000000A2016秋2014级《MATLAB程序设计》实验指导书共17页,第6页4、生成矩阵412303214A:(1)取出所有大于0的元素构成一个向量a(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)。(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。5、已知654321a,531142b,201c,063258741d下列运算是否合法,为什么?如合法,写出计算结果?(1)result1=a'(2)result2=a*b(3)result3=a+b(4)result4=b*d(5)result5=[b;c']*d(6)result6=a.*b(7)result7=a./b(8)result8=a.*c(9)result9=a.\b(10)result10=a.^2(11)result11=a^2(12)result11=2.^a6、已知13478451244,122438,[1,0,8,3,6,2,4,23,46,6]78276853abc(1)求a+b,a*b,a.*b,a/b,a./b,a^2,a.^2的结果,并观察运算结果。(2)求c中所有元素的平均值、最大值、中值,并将c中元素按从小到大顺序排列。(3)解释b(2:3,[1,3])的含义,并将生成的数组赋值给d。2016秋2014级《MATLAB程序设计》实验指导书共17页,第7页关系运算与逻辑运算7、已知a=20,b=-2,c=0,d=1,计算下列表达式:(1)r1=ab(2)r2=ab&cd(3)r3=a==b*(-10)(4)r4=~b|c8、已知1323151122231592127A(1)求矩阵A的秩(rank);(2)求矩阵A的行列式(determinant);(3)求矩阵A的逆(inverse);(4)求矩阵A的特征值及特征向量(eigenvalueandeigenvector)。9、已知多项式f1(x)=2x4-x2+3x+2,f2(x)=3x+2,利用MATLAB进行如下计算:(1)计算两多项式的乘法和除法;(2)求多项式f1(x)的根;(3)分别计算多项式当x=3以及1324x时的值。10、用两种方法求下列方程组的解,并比较两种方法执行的时间。1234512345123451234512345714925100315136420011925730057141624002512114500xxxxxxxxxxxxxxxxxxxxxxxxx11、建立一个元胞数组,要求第一个元素为4Χ4的魔术矩阵,第二个元素为18.66,第三个元素为'matlab',第四个元素为等差数列7,9,11,13…99。计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第10个元素。12、建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个2016秋2014级《MATLAB程序设计》实验指导书共17页,第8页阶段的分数。问题是:(1)如何找到第2个人的分数并显示出来;(2)如何找到第2个人的每门课程3个阶段的平均分数并显示出来;(3)所有同学的10门课程的每门课程的平均分如何计算出来?要求放到一个数组里;(4)找到这个班所有同学的姓名放到一个元胞数组里;13、完成以下操作:(1)已有str=‘decision20madeon10/20/10’,查找字符串中20出现的位置。(2)有字符串s1=‘matlabexpress’,s2=‘matlabexcellent’,比较两个字符串的前8个字符是否相同,相同输出1,否则输出0。(3)统计字符串s1=‘matlabexpress’中ex出现的次数,并替换为EX。2016秋2014级《MATLAB程序设计》实验指导书共17页,第9页实验三MATLAB程序设计一、实验目的1、掌握建立和执行M文件的方法。2、掌握选择结构、多分支选择结构程序的编程方法。3、掌握多种循环结构程序的编程方法。4、掌握定义函数文件和调用函数文件的方法。二、实验内容1、MATLABM文件的创建与使用。(1)建立自己工作目录,如D:\MATLAB。在File菜单中,单击SetPath菜单项,在弹出对话框中建立目标文件夹,:单击AddFolder按钮,将自己的工作目录D:\MATLAB添加到搜索目录之中,按Save按钮保存,如图1。图1工作目录设置(2)在M文件编辑器中编制命令行文件。在File菜单中,单击New—M-File,弹出M文件编辑器,如图2:图2编辑器2016秋2014级《MATLAB程序设计》实验指导书共17页,第10页在编辑器中输入如下命令程序:%求小于2000且为2的整数次幂的正整数。f(1)=2;k=1;whilef(k)1000f(k+1)=f(k)*2;k=k+1;endf,k调试后,将其以test1.m形式保存在D:\MATLAB中。(3)命令行程序运行。进入命令窗口,键入test1,观察运行结果:(4)按上述步骤,在在编辑器中输入如下函数文件:functionf=tt(n)%求小于任何正整数且为2的整数次幂的正整数。%c=n(n)%n可取任意正整数。%%2004年8月。f(1)=2;k=1;whilef(k)ceil(n/2)%ceil函数取最近的正整数f(k+1)=f(k)*2;k=k+1;endf调试后,将其以test2.m形式保存在D:\MATLAB中。(5)进入命令窗口,键入t