第2章MATLAB软件.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章MATLAB软件主要内容MATLAB特点MATLAB集成环境MATLAB基本运算MATLAB程序设计文件相关操作MATLAB是“MATrixLABoratory”的缩写,它是由美国Mathworks公司于1984年推出的一种科学计算软件。与其它计算机语言相比,MATLAB有以下显著特点:2.1MATLAB语言及其特点人机界面友好强大而简易的作图功能功能丰富,可扩展性强超强的数值运算功能实用的程序接口2.2MATLAB语言的工作环境MATLAB启动MATLAB命令窗口MATLAB工作空间命令历史窗口当前工作目录窗口MATLAB搜索路径MATLAB帮助系统1.打开MATLAB桌面快捷按钮2.2.1MATLAB启动安装目录matlab.exe2.MATLAB界面主界面绘图快捷功能应用快捷功能2.2.2MATLAB的命令窗口2.2.3工作空间2.2.4命令历史窗口2.2.5当前工作目录窗口2.2.6MATLAB搜索路径选择菜单“file”→setpath”进入搜索路径管理窗口2.2.7MATLAB帮助系统2.3MATLAB基本运算矩阵运算符号运算关系运算和逻辑运算2.3.1矩阵运算输入矩阵A、B的值A=[1234;5678;9101112;13141516]B=[1,sqrt(25),9,13;2,6,10,7*2;3+sin(pi),7,11,15;4,abs(-8),12,16]A=B=1234159135678261014910111237111513141516481216X=[1230;5608;901112;0141516]X=12305608901112014151619矩阵下标与子矩阵提取X(2,3)ans=0X(2,:)ans=5608X(2:3,1:3)ans=5609011X(2:end,1)ans=5609011X(:)ans=159026014301115081216修改矩阵A中元素的数值A=[1234;5678;9101112;13141516]A=12345678910111213141516A(1,1)=0A=0234567891011121314151622A(2,2)=A(1,2)+A(2,1)A=02345778910111213141516A(4,4)=cos(0)A=0234577891011121314151特殊矩阵生成a=zeros(3)a=000000000b=ones(3)b=111111111c=rand(3)c=0.81470.91340.27850.90580.63240.54690.12700.09750.9575d=randn(3)d=2.76940.7254-0.2050-1.3499-0.0631-0.12413.03490.71471.4897m=[123;456;789];a=tril(m);b=triu(m);c=diag(m);a=100450789b=123056009c=1592.3.2符号运算创建符号变量和符号表达式symsxyreal%创建实数符号变量z=x+i*y;%创建z为复数符号变量real(z)%复数z的实部是实数xans=xsymsabcx%创建多个符号变量f2=a*x^2+b*x+c%创建符号表达式f2=a*x^2+b*x+cA=sym('[a,b;c,d]');B=sym('[12;34]');C=A+BC=[a+1,b+2][c+3,d+4]符号运算A=[-2,-1,0,0,1,2,3]L1=~(A1)%判断A中,哪些元素不大于1L2=(A0)&(A2)%判断A中,哪些元素大于0且小于3A=-2-100123L1=1111100L2=00001002.4MATLAB程序设计2.4.1M文件2.4.2MATLAB控制流2.4.3程序基本设计原则2.4.1M文件Matlab通常使用命令驱动方式,当单行命令输入时,Matlab立即处理并显示结果,同时将运行说明和命令存入历史命令窗口。Matlab语句的磁盘文件称作M文件,因为这些文件名的末尾是.M形式。M文件有两种类型:命令(Script)文件函数(function)文件命令(Script)文件第一类型M文件称为命令(Script)文件,特点如下:(1)最简单的M文件,它是一系列命令、语句的简单组合;(2)没有输入和输出参数;(3)顺序执行文件后变量是全局变量,保存在工作空间中;(4)可以直接运行。例:%绘制花瓣theta=-pi:0.01:pi;rho(1,:)=2*sin(5*theta).^2;rho(2,:)=cos(10*theta).^3;rho(3,:)=sin(theta).^2;rho(4,:)=5*cos(3.5*theta).^3;fork=1:4subplot(2,2,k),polar(theta,rho(k,:))end运行方式(1)将所有命令复制粘贴到命令行窗口,按回车执行。(2)在M文件编辑器中选择“Debug”,再选“Run”运行,或直接按“F5”运行程序。(3)在命令行中键入文件名,再回车,注意不要加扩展名“.m”。M文件命名时不要用纯数字,这样会导致错误的结果。若有一个名为“1.m”的M文件,运行后的结果只能是1。注意函数(Function)文件函数文件的特点如下:(1)以function为引导;(2)可以接受输入、输出参数;(3)内部变量为局部变量,运行完被释放。(4)不能直接运行,必须调用。函数(Function)文件functionX=total(n)%total计算从1到n的n个数之和%如果n比1小,则提示错误。ifn1error('Inputmustbelargerthan1');endk=1:n;X=sum(k);函数定义行function函数名,输入变量,输出变量注释行:在命令窗口键入helptotal后显示出来.显示内容为连续的若干个%右边的文字。函数体:包括函数的全部程序代码注意函数文件编写完之后,保存的文件名必须与函数名同名!例函数文件示例——average.m。functiony=average(x)%AVERAGE求向量元素的均值%语法:%Y=average(X)%其中,X是向量,Y为计算得到向量元素的均值%若输入参数为非向量则出错%代码行[m,n]=size(x);%判断输入参数是否为向量if(~((m==1)|(n==1))|(m==1&n==1))%若输入参数不是向量,则出错error('Inputmustbeavector')end%计算向量元素的均值y=sum(x)/length(x);在命令行中键入下面的指令运行例14的代码:z=1:99;y=average(z)y=501选择结构当人们判断某一条件是否满足,根据判断的结果来选择不同的解决问题的方法时,就需要使用选择结构。和C语言类似,MATLAB的条件判断可使用if语句或者switch语句。2.4.2MATLAB控制流if语句if语句的基本语法结构有三种,分别如下:(1)if关系运算表达式MATLAB语句end选择结构表示,当关系表达式结果为逻辑真时,执行MATLAB语句,可以是一个表达式,也可以是多个表达式。语句结尾处必须有关键字end。(2)if关系运算表达式MATLAB语句AelseMATLAB语句Bend选择结构表示,当关系表达式结果为逻辑真时,执行语句A,否则执行语句B,语句B结尾必须具有关键字end。(3)if关系运算表达式aMATLAB语句Aelseif关系运算表达式bMATLAB语句Belse关系运算表达式cend这种选择结构可判断多条关系表达式结果,按照执行逻辑关系执行相应语句。例if语句的使用——if_examp.m。clearallI=1;J=2;ifI==JA(I,J)=2;elseifabs(I-J)==1A(I,J)=-1;elseA(I,J)=0;endswitch语句另外一种构成选择结构的关键字就是switch。在处理实际问题的时候,往往要处理多个分支,这时如果使用if-else语句处理多分支结构往往使程序变得冗长,降低了程序可读性。switch语句就可以用于处理多分支选择,语法结构如下:switch(表达式)case常量表达式a:MATLAB语句Acase常量表达式b:MATLAB语句Bcase常量表达式m:MATLAB语句Motherwise:MATLAB语句Nend…switch后的表达式可以是一个数值类型表达式或是一个数值类型的变量,当这个表达式的值同case后面的某一个常量表达式相等时,则执行case后面常量表达式后面的语句。注意:MATLAB的switch和C语言不同。C语言case后面的语句必须包含类似break语句的流程控制语句,否则程序会依次执行符合条件的case语句后面的每一个case分支。但是在MATLAB中就不必如此,程序仅仅执行符合条件的case分支。例switch结构使用示例——switch_examp.m。clearallalgorithm=input('Enteranalgorithminquotes(ode23,ode15s,etc:)','s');switchalgorithmcase'ode23'str='2nd/3rdorder';case{'ode15s','ode23s'}str='stiffsystem';otherwisestr='otheralgorithm';enddisp(str);2.循环结构MATLAB中包含两种循环结构,一种是循环次数不确定的while循环,而另一种是循环次数确定的for循环。while循环结构while语句可用来实现“当”型的循环结构,形式如下:while(表达式)MATLAB语句end当表达式为真时,循环执行由语句构成的循环体,特点是先判断循环条件,循环条件成立,即表达式运算结果为“真”,再执行循环体。循环体执行的语句可以是一句也可以是多句,在语句后必须使用关键字end作为循环结构的结束。for循环结构使用for语句构成循环是最灵活、简便的方法,使用for语句循环需要预先知道循环体执行的次数,这种循环一般叫作确定循环。for循环基本结构如下:forindex=start:increment:endMATLAB语句end其中index的取值取决于start和end的值,通常使用等差的数列向量。例使用while语句求解。i=1;sum=0;while(i=1000)sum=sum+i;i=i+1;endstr=['计算结果为:',num2str(sum)];disp(str)10001nn例使用for语句求解sum=0;fori=1:1000sum=sum+i;endstr=['计算结果为:',num2str(sum)];disp(str)3break语句和continue语句在循环结构中还有两条语句会影响程序的流程,就是break语句和continue语句,基本功能如下:●break语句在执行循环体的时候强迫终止循环,即控制程序的流程使其提前退出循环,使用方法是break;●continue语句中断本次循环体运行,将程序流程跳转到判断循环条件的语句处,继续下一次循环,使用方法是continue;例8break语句示例——break_example.m。i=0;j=0;k=0;fori=1:2forj=1:2fork=1:2if(k==2)disp('退出循环');break;endstr=sprintf('I=%d,J=%d,K=%d',i,j,k);disp(str);endendenddisp('程序运行结束');运行结果如下:break_exampleI=1,J=1,K=1退出循环I=1,J=2,K=1退出循环I=2,J=1,K=1退出循环I=2,J=2,K=1退出循环程序运行结束例9continue

1 / 77
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功