Matlab编程基础.ppt
《Matlab编程基础.ppt》由会员分享,可在线阅读,更多相关《Matlab编程基础.ppt(174页珍藏版)》请在三一办公上搜索。
1、1,第二章之 Matlab编程基础,2,2-1 Matlab软件的运行环境与安装方法,Matlab6.5软件对系统的基本要求主要有:(1)Pentium,Pentium Pro,Pentium II,Pentium III,Pentium IV,Intel Xeon,AMD Athlon;(2)支持操作系统为Win2000、WinXP;(3)CD-ROM驱动器,用于从光盘安装该软件;(4)内存128 MB RAM,建议采用256 MB RAM及其以上;(5)全部安装该软件所需要的硬盘空间最少不低于1000MB,建议使用硬盘40G以上;(6)支持256色以上显示器,建议采用32M以上显卡,3,安
2、装Matlab的setup按钮,4,安装Matlab的界面,5,安装Matlab的界面,6,安装Matlab时输入密码的界面,7,Matlab组件选择窗口界面,MATLAB组件的选择窗口,8,Matlab桌面快捷方式,9,Matlab的操作界面窗口说明,历史指令窗口,工作空间浏览器,命令窗口,当前目录浏览器(后台),开始按钮,切换按钮,当前工作目录设定,命令提示符号,输入命令/指令区域,10,2-2 Matlab软件的常用窗口简介,命令窗口(Command Window),11,历史命令(指令)窗口,12,工作空间浏览器窗口,13,当前目录浏览器(Current Directory Brows
3、er),14,内存数组编辑器(Array Editor),15,M文件编辑/调试器窗口,16,Matlab的交互界面分类目录窗口,17,帮助导航/浏览器(Help Navigator/Browser),18,2-3MATLAB的运行方式,一、命令行运行方式 演算纸式的科学计算语言 在MATLAB的应用中,最基本、最简单的应用,就是在命令窗口中直接输入命令来实现计算或绘图功能。MATLAB命令行的一般形式为:变量表达式或:表达式(赋值语句),19,命令行运行方式(续),使用MATLAB最简单的方式是将MATLAB的命令窗口看作计算器,通过输入数学算式直接计算。12345 ans=15 如果在输入
4、的表达式后面跟上分号“;”,那么运行后就不会马上显示运算的结果,必须键入输出变量后才能显示运算结果。用分号关闭不必要的输出会使程序运行速度成倍甚至成百倍地提高。12345;则不会马上显示运算结果,要得到运算结果,必须 ans 则显示结果为 ans=15,20,命令行运行方式(续),如果在表达式后面跟上逗号“,”或什么都不跟,运行后会马上显示该表达式的运算结果。如果一个表达式很长,可以用续行号“”将其延续到下一行。1+2+3+4+5+%注意加号写在本行。6+7+8+9+10 则输出结果 ans=55 如果续行号前面是数字,直接使用续行号会出现错误,有三种解决办法,一是设法使续行号前面是一个运算符
5、号,二是先空一格再加续行号,三是再加一个点。,21,在一行中也可以写几个语句,它们之间用逗号“,”或分号“;”隔开。A=1,2,3.3,sin(4),X=1966/310+1 则输出结果 A 1.0000 2.0000 3.3000,-0.7568 X=7.3419。,命令行运行方式(续),22,二、m文件运行方式,所谓m文件,就是用MATLAB语言编写的、可以在MATLAB中运行的程序。它是以普通文本格式存放的,故可以用任何文本编辑软件进行编辑。MATLAB提供的m文件编辑器就是程序编辑器。在File菜单中选择NEW,再选择M-file,或点击新建图标,就可以调出m文件编辑器,用户可以用此编
6、辑器编写m文件。m文件有两种形式,一种称为命令文件(Script File),另一种称为函数文件(Function File),两种文件的扩展名都是m。,23,(1)命令文件,如果要输入较多的命令,或者要经常对某些命令进行重复的输入,则可以将这些命令按执行顺序存放在一个m文件中,以后只要在MATLAB的命令窗口中输入该文件的文件名,系统就会调入该文件并执行其中的全部命令。这种形式就是MATLAB的命令文件。命令文件中的语句可以访问MATLAB工作空间的所有变量;而在命令文件执行过程中创建的变量也会一直保留在工作空间中,其他命令或m文件都可以访问这些变量。命令文件相当于DOS批处理文件。,24,
7、命令文件(续),求满足1+2+3+n=100,故应对sum减nn=n-1;%当循环结束时有sum=100,故应对n减1n,sum%显示最大正整数n以及和sum,25,命令文件(续),将上述程序存入文件fl.m,然后在命令窗口键入fl 显示结果为n=13sum=91指出:程序中由符号“%”开始的文字都是注释文字,用来对程序或程序行行进行注释说明,符号“%”称为注释符,MATLAB在执行时将忽略“%”后的内容。,26,(2)函数文件,函数文件是另一类m文件,可以像库函数一样方便地被调用,MATLAB提供的许多工具箱,是由函数文件组成的。对于某一类特殊问题,用户可以建立系统的函数文件,形成专用工具箱
8、。函数文件的第一行有特殊的要求,它必须遵循如下的形式:function=()其他各行都是程序运行语句,没有特别要求。函数文件的文件名必须是.m。,27,函数文件(续),实现符号函数运算功能的函数m文件为:function y=sgn(x)%这是一个定义符号函数y=sgn(x)的函数文件。if x0 y1=-1;elseif x=0 y1=0;else y1=1;endy=y1;,28,函数文件(续),将上述程序存为文件sgn.m,便可以将其作为普通的MATLAB函数来使用:x=4/3*pi;y=3*sgn(sin(x)显示结果为:y=-3,29,三、MATLAB的常用命令,MATLAB可以通过
9、菜单对工作着的窗口进行操作,也可以通过键盘在命令窗口输入命令进行操作,下面给出几个常用的通用命令。quit 关闭MATLABexit 关闭MATLABclc 清除MATLAB命令窗口中的所有显示内容clear 清除工作空间中保存的所有变量 其他命令可以在学习应用中逐步熟悉。,30,四、MATLAB的基本运算,指出:右除相当于通常的除法。,31,2-4MATLAB的变量与函数,一、变量变量就是在程序的运行过程中,其数值可以变化的量(数据),它可以代表一个或若干个内存单元(变量的地址)中的数据。为了对所有的变量所对应的存储单元进行访问,需要给变量命名。MATLAB变量命名的规则是:以字母开头,后面
10、可以跟字母、数字或下划线。不超过31个字符。字符间不可以留空格。区分大小写。,32,MATLAB的变量与函数(续),系统变量,33,MATLAB的变量与函数(续),指出:自定义变量名一般不应和系统变量同名。在MATLAB中输入的内容直接决定变量的类型。使用who和whos命令可以查看变量。使用clear命令可以删除所有定义过的变量。如果只是删除其中某些变量,应在clear后面指定要删除的变量名。例如 clear a z有了变量,就可以组成表达式,也就可以对变量进行赋值。MATLAB的赋值语句有两种形式。变量名表达式 表达式 在第一种情况下,MATLAB将右边的表达式的值赋值给左边的变量,在第二
11、种情况,MATLAB将表达式的值赋值给系统变量ans。所谓表达式,就是用运算符号把特殊字符、函数名、变量名等有关运算量连接起来的式子,其结果是一个矩阵。,34,二、函数,数学函数,35,函数(续),机器函数 pause 程序将暂时停在该函数所在位置,击任意键程序继续执行 echo on 在命令窗口显示正在执行的程序指令 cputime 给出MATLAB所耗用的总机器时间 clock 给出日期及当前时间指出 在表达式中,函数一定要出现在等式的右边。每个函数对其自变量的个数和格式都有一定要求,如三角函数的单位是“弧度”而不是“度”。函数允许嵌套,如sqrt(sin(10)。系统函数的函数名小写。注
12、意函数名也是区分大小写的。,36,2-4 MATLAB的数值计算,MATLAB运算的基本数据对象是矩阵,标量可以看作是11的矩阵,向量可以看作是1n或n1的矩阵。因此,可以说MATLAB的数据结构就是矩阵,以矩阵运算为代表的基本运算功能一直是MATLAB引以为自豪的核心与基础。,37,一、矩阵的创建,矩阵是线性代数的基本运算单元。通常矩阵是指含有m行n列数值的矩形结构。矩阵中的元素可以是实数也可以是复数,由此可以将矩阵划分为实矩阵和复矩阵。MATLAB支持线性代数所定义的全部矩阵运算。在MATLAB中创建矩阵应遵循以下原则:矩阵的元素必须在方括号“”中。矩阵的同行元素之间用空格或逗号“,”分隔
13、。矩阵的行与行之间用分号“;”或回车符分隔。矩阵的尺寸不必预先定义。矩阵元素可以是数值、变量、表达式或函数。如果矩阵元素是表达式,系统将自动计算出结果。,38,矩阵的创建(续),1、直接输入法在命令窗口按规则输入方式创建矩阵 例1.在命令窗口创建简单的数值矩阵。A=1 3 2;3 1 0;2 1 5 回车后在命令窗口显示如下结果 A=1 3 2 3 1 0 2 1 5 例2.在命令窗口创建带运算表达式的矩阵,不显示结果。y=sin(pi/3),cos(pi/6);log(20),exp(2);输入“y”回车,在命令窗口显示出来。y 显示出的结果为 y=0.8660 0.8660 2.9957
14、7.3891,39,矩阵的创建(续),指出:在矩阵较大时,用分行输入的方式(用回车代替分号区分不同行)比较接近于线性代数中的矩阵,更直观一些。任何矩阵元素内部不能有空格,否则会被认定是两个元素。,40,矩阵的创建(续),2、通过数据文件创建矩阵导入其他程序创建的数据 例3.用记事本输入一组数据 1 2 3 4 2 3 4 5 4 3 4 5 5 7 6 1 保存为fort.txt,用load命令读入,load fort.txt 输入fort就可以在命令窗口显示创建的矩阵。fort 显示结果为 fort=1 2 3 4 2 3 4 5 4 3 4 5 5 7 6 1,41,矩阵的创建(续),指出
15、:通过load命令导入数据是形成矩阵的重要方法,解决了在工作现场没有MATLAB系统和其他数据管理系统的问题,可以只用基本的文字处理工具完成。MATLAB对文本形式的数据文件的扩展名并不计较,将上述数据文件换名保存为fort.1,仍然可以如上导入、应用。文件名可以定义为m1.txt或m1.1。但是,如果将文件命名为1m.txt,则显示出错信息:“Error:Missing operator(算子),comma(逗号),or semicolon(分号).”如果文件名命名为3.txt、1.txt、3.1等,则显示的是主文件名所用的数字。数据文件保存为word或wps等的文件格式同样可以引用。,42
16、,矩阵的创建(续),如果数据文件中有字母,则不能引用,显示出错信息,即使该字母在前面的指令中已经赋值也不可。如果数据文件中有算式,则不能完整显示,算式元素将仅显示第一个运算符(或关系符)前的数字。导入其他数据,如图像数据、Excel数据时,可以使用数据导入向导Import Wizard。,43,矩阵的创建(续),3、通过m文件创建矩阵将矩阵建立为m文件 先将矩阵按创建原则写入一个m文件中,在MATLAB命令窗口或程序中直接运行该m文件(输入该m文件名),即可将矩阵调入工作空间。4、通过函数创建矩阵,44,特殊矩阵的实现,eye、zeros、ones、rand、diag、compan、triu、
17、tril,A=eye(n)A=eye(size(B)A=eye(n,m),A=zeros(n)A=zeros(size(B)A=zeros(n,m),A=ones(n)A=ones(size(B)A=ones(n,m),A=rand(n)A=rand(size(B)A=rand(n,m),A=diag(B),当B为向量时,构成一个以向量元素为对角线的对角矩阵,当B为矩阵时,构成一个以B的主对角线元素为对角线的对角矩阵,A=compan(B),计算矩阵B的伴随矩阵,A=triu(B),计算矩阵B的上三角矩阵A=triu(B),计算矩阵B的下三角矩阵,45,矩阵的创建(续),指出:当某一项操作无结
18、果时,MATLAB将返回一个空矩阵,空矩阵的大小为0,但它确实存在于工作空间,可以通过变量名访问。输入后的矩阵将保存在MATLAB工作空间中,并可以随时被访问调用,如果用户不用“clear”命令清除它,或给它重新赋值,该矩阵将一直保存在工作空间直到MATLAB关闭为止。如果矩阵函数中只有一个参数,则为方阵。四种创建矩阵的方法各有优点:直接输入法方便简捷;通过数据文件创建有利于调用其他软件产生的数据;通过m文件创建是用于创建较大尺寸的矩阵并便于修改;通过函数创建可以由MATLAB内部函数创建一些特殊矩阵。,46,矩阵的创建(续),5、其他构造矩阵的方法冒号法1冒号法构造向量冒号表达式的一般格式为
19、:向量名初值:步长:终值。例4.在窗口输入 x=0:0.5:2回车后显示x=0 0.5000 1.0000 1.5000 2.0000。例5.在命令窗口输入 x=2:-0.5:0回车后显示x=2.0000 1.5000 1.0000 0.5000 0,47,矩阵的创建(续),指出:步长可以省略,省略步长,则步长为1。步长可以为负,此时初值大于终值。向量的元素比较多而又有增减规律时,这种方法非常便利。冒号法表示向量时,向量的全体成员是从初值开始,以步长为增量,直到不超过终值的所有元素构成的序列。冒号法的应用可以避免使用循环,提高程序运行速度。,48,矩阵的创建(续),2冒号法构造矩阵一般格式为:
20、A(:,j):表示矩阵A的第j列;A(i,:):表示矩阵A的第i行。例6.建立矩阵。解:A(1,:)=1:5%设置矩阵的第1行A=1 2 3 4 5,49,矩阵的创建(续),A(2,:)=6:10%设置矩阵的第2行A=1 2 3 4 5 6 7 8 9 10 A(3,:)=11:15%设置矩阵的第3行,设置完成A=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,50,矩阵的创建(续),指出:在MATLAB中,还可以利用函数linspace产生行向量,其调用格式为:linspace(a,b,n)。其中a,b是向量的第一个和最后一个元素,n是元素的个数。这样产生的向量的元素
21、成等差数列。例如,linspace(1,4,5)ans=1.0000 1.7500 2.5000 3.2500 4.0000函数linspace被称为线性等分函数。,51,矩阵的创建(续),指出:冒号法和应用linspace都可以创建具有递增元素序列的向量,但是,用冒号法创建向量时,向量的元素不一定取到终值,而应用linspace则必然会取到,因为b表示的就是最后一个元素。,52,二、矩阵的运算,MATLAB对于矩阵与矩阵之间的运算的处理方法与线性代数中的相同,53,矩阵的计算(续),说明:矩阵也可以和一个数之间进行运算。线性代数没有定义除法运算,MATLAB为了便于计算,定义了矩阵的除法,并
22、有左除和右除之分。矩阵左除使用“”运算符,右除使用“/”运算符。XAB是解方程组A*XB;XB/A则是解方程组X*AB。一般地说,ABB/A。在算法上,ABinv(A)*B,inv是求某一个矩阵的逆矩阵;而B/AB*inv(A)。指出:如果A*B=B*A=I(单位矩阵),称A和B互为逆矩阵。如果矩阵中有复数元素,那么转置后得到它的复数共轭矩阵。,54,矩阵的运算(续),例7.若创建矩阵A=1,0,2;0,1,3;1,0,4,B=1,2,3;4,5,6;7,8,9,C=1,2;3,4;5,6 并计算A+B、A+3、A*C、A2、CT、A-1、A1B。指出:A2A2;CTC;A-1=inv(A);
23、A1B=AB(或inv(A)*B)在MATLAB系统中,还有一个数据结构是“数组”。数组在结构上和矩阵是完全一致的,唯一的区别是数组的运算不服从线性代数的规定,而是元素对元素间的运算。数组的加减运算与矩阵加减相同,数组的乘法、左除、右除、幂的运算符号分别是矩阵相应运算符前面加一个小圆点“.”。矩阵运算的一个重要的应用是解线性方程组。,55,矩阵的运算(续),例8.求下面方程组的根。解:解线性方程组,可以使用矩阵的左除“”,即XAB。A=2,1,-3;3,-2,2;5,-3,-1;B=5;5;16;%列向量 X=AB X=1-3-2,56,矩阵的运算(续),指出:线性方程组A*XB有两种解法:X
24、=AB或X=inv(A)*B,但一般用第一种解法,在MATLAB中,第二种解法所用时间是第一种解法的50倍。可以看出,同样解线性方程组,不同的算法的效率是有极大差距的,可见优化和选择算法是非常重要的。求逆运算inv(A)是重要的代数运算。,57,三、矩阵的操作,1、矩阵的大小测度 Size函数用来测试矩阵的大小,对于 矩阵A,size(A)返回一个行向量,它包含了矩阵的行数m和列数n。如果专门显示行数和列数,则可以采用如下格式:。例9.已知矩阵 求矩阵的大小。,58,矩阵的操作(续),解:A=1 1 1 1 1;1 2 3 4 5;1 3 6 10 15 设A为已知矩阵A=1 1 1 1 1
25、1 2 3 4 5 1 3 6 10 15 d=size(A)测试矩阵A的大小d=3 5 d1=size(A,1)测试矩阵的行数d1=3 d2=size(A,2)测试矩阵的列数d2=5,59,矩阵的操作(续),2、矩阵的元素操作例10.已知矩阵,写出矩阵的元素A(2,3),将A(3,5)改为1。解:A=1 1 1 1 1;1 2 3 4 5;1 3 6 10 15A=1 1 1 1 1 1 2 3 4 5 1 3 6 10 15,60,矩阵的操作(续),A(2,3)ans=3 A(3,5)=-1A=1 1 1 1 1 1 2 3 4 5 1 3 6 10-1,61,矩阵的操作(续),例11.A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 编程 基础
链接地址:https://www.31ppt.com/p-6512114.html