《MATLAB如何使用教程初步入门大全.ppt》由会员分享,可在线阅读,更多相关《MATLAB如何使用教程初步入门大全.ppt(79页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLABMATLAB快速入门快速入门1目目 录录 l MATLAB基本操作l MATLAB数值计算l MATLAB图形处理l MATLAB编程技巧2一、MATLAB的启动与退出1、MATLAB系统的启动(1)在桌面上双击MATLAB快捷方式图标。(2)在开始菜单中单击MATLABMATLAB6.5项。(3)在MATLAB安装目录MATLAB6p5中双击MATLAB快捷方式。(4)在MATLAB安装目录MATLAB6p5binwin32中双击MATLAB.exe图标。2、MATLAB系统的退出(1)点击操作桌面的关闭按钮。(2)执行操作桌面fileExit MATLAB命令。(3)在命令窗口
2、中输入命令exit或quit,并回车。(4)用快捷键Ctrl+Q。1 MATLAB的基本操作3二、二、MATLABMATLAB窗口窗口 启动MATLAB后,将显示包括四个窗口l命令窗口(command windows)l工作空间窗口(workspace)l命令历史窗口(command history windows)l当前路径窗口(current directory)4(1 1)命令窗口)命令窗口(Command Window)(Command Window)lMATLAB是交互式的语言,输入命令即给出运算结果。而命令窗口则是MATLAB的主要交互窗口,用于输入和编辑命令行等信息,显示结果(图
3、形除外)。l当命令窗口中出现提示符“”时,表示MATLAB已经准备好,可以输入命令、变量或运行函数。提示符总是位于行首。l在每个指令行输入后要按回车键,才能使指令被MATLAB执行。5(2 2)工作空间工作空间(Workspace)(Workspace)l工作空间用于保存MATLAB变量的信息。l在工作空间可以对变量进行观察、编辑、保存和删除。l保存在工作空间中的自定义变量,直到使用了“clear”命令清除工作空间或关闭了MATLAB系统才被清除。l在命令窗口中键入“whos”命令,可以显示出保存在工作空间中的所有变量的名称、大小、数据类型等信息,如果键入“who”命令,则只显示变量的名称。6
4、(3 3)命令历史窗口命令历史窗口(Command History)(Command History)l命令历史窗口记录用户每一次启动MATLAB的时间以及在命令窗口运行过的所有指令。l命令历史窗口中的指令可以被复制到命令窗口重新运行。l如果要清除掉这些记录,可以选择“Edit”菜单中的“Clear Command History”项。7(4 4)当前路径窗口)当前路径窗口(Current Directory)(Current Directory)l当前路径窗口也称为当前目录窗口。可以显示或改变当前目录。l当前目录指的是MATLAB运行文件时的工作目录。只有在当前目录或搜索路径下的文件及函数可
5、以被运用或调用,如果没有特殊指明,数据文件也将储存在当前目录下。l如果要建立自己的工作目录,在运行文件前必须将该文件所在目录设置为当前目录。8三、三、MATLABMATLAB的帮助系统的帮助系统帮助命令 帮助命令是查询函数语法的最基本的方法,查询信息直接显示在命令窗口。帮助命令有help、lookfor。lhelp 函数名%显示关于某个具体函数的功能、调用格式、及相关函数。lhelp 帮助主题%列出指定主题下的函数。例如:help elfun%列出所有基本函数。llookfor image%查找有关图像的函数和命令9四、四、MATLABMATLAB的运行方式的运行方式1、命令行运行方式 在MA
6、TLAB的应用中,最基本、最简单的应用,就是在命令窗口中直接输入命令来实现计算或绘图功能。MATLAB命令行的一般形式为:l变量表达式 A=1+2l表达式 1+2 10命令行运行方式(续)命令行运行方式(续)使用MATLAB最简单的方式是将MATLAB的命令窗口看作计算器,通过输入数学算式直接计算。12345 ans=15 如果在输入的表达式后面跟上分号“;”,那么运行后就不会马上显示运算的结果,必须键入输出变量后才能显示运算结果。用分号关闭不必要的输出会使程序运行速度成倍甚至成百倍地提高。12345;则不会马上显示运算结果,要得到运算结果,必须 ans 则显示结果为 ans=1511命令行运
7、行方式(续)命令行运行方式(续)如果在表达式后面跟上逗号“,”或什么都不跟,运行后会马上显示该表达式的运算结果。如果一个表达式很长,可以用续行号“”将其延续到下一行。1+2+3+4+5+%注意加号写在本行。6+7+8+9+10 则输出结果 ans=55 12在一行中也可以写几个语句,它们之间用逗号“,”或分号“;”隔开。A=1,2,3.3,sin(4),X=1966/310+1 则输出结果 A 1.0000 2.0000 3.3000,-0.7568 X=7.3419。命令行运行方式(续)命令行运行方式(续)132 2、mm文件运行方式文件运行方式 l所谓m文件,就是用MATLAB语言编写的、
8、可以在MATLAB中运行的程序。它是以普通文本格式存放的,故可以用任何文本编辑软件进行编辑。MATLAB提供的m文件编辑器就是程序编辑器。l在File菜单中选择NEW,再选择M-file,或点击新建图标,就可以调出m文件编辑器,用户可以用此编辑器编写m文件。14(1 1)命令文件)命令文件 l如果要输入较多的命令,或者要经常对某些命令进行重复的输入,则可以将这些命令按执行顺序存放在一个m文件中,以后只要在MATLAB的命令窗口中输入该文件的文件名,系统就会调入该文件并执行其中的全部命令。这种形式就是MATLAB的命令文件。15命令文件(续)命令文件(续)l求满足1+2+3+n100的最大正整数
9、n的MATLAB程序为:sum=0;n=0;%赋初始值while sum=100,故应 对sum减nn=n-1;%当循环结束时有sum=100,故 应对n减1n,sum%显示最大正整数n以及和sum16命令文件(续)命令文件(续)l将上述程序存入文件fl.m,然后在命令窗口键入fl 显示结果为n=13sum=91l指出:程序中由符号“%”开始的文字都是注释文字,用来对程序或程序行行进行注释说明,符号“%”称为注释符,MATLAB在执行时将忽略“%”后的内容。17(2 2)函数文件)函数文件函数文件是另一类m文件,可以像库函数一样方便地被调用,MATLAB提供的许多工具箱,是由函数文件组成的。对
10、于某一类特殊问题,用户可以建立系统的函数文件,形成专用工具箱。函数文件的第一行有特殊的要求,它必须遵循如下的形式:function=()其他各行都是程序运行语句,没有特别要求。函数文件的文件名必须是.m。18函数文件(续)函数文件(续)实现符号函数运算功能的函数m文件为:function y=sgn(x)%这是一个定义符号函数 y=sgn(x)的函数文件。if xx=4/3*pi;y=3*sgn(sin(x)显示结果为:y=-320五、五、MATLABMATLAB的常用命令的常用命令 MATLAB可以通过菜单对工作着的窗口进行操作,也可以通过键盘在命令窗口输入命令进行操作,下面给出几个常用的通
11、用命令。lquit 关闭MATLABlexit 关闭MATLABlclc 清除MATLAB命令窗口中的所有显示内容lclear 清除工作空间中保存的所有变量 其他命令可以在学习应用中逐步熟悉。21六、六、MATLABMATLAB的基本运算的基本运算运算数学表达式MATLAB运算符MATLAB表达式示例加a+b+a+b1+2减a-b-a-b5-3乘ab*a*b2*3除a b/(右除)或(左除)a/b或ba 6/2或26幂abab23指出:右除相当于通常的除法。22七、七、MATLABMATLAB的变量与函数的变量与函数1、变量l变量就是在程序的运行过程中,其数值可以变化的量(数据),它可以代表一
12、个或若干个内存单元(变量的地址)中的数据。为了对所有的变量所对应的存储单元进行访问,需要给变量命名。lMATLAB变量命名的规则是:以字母开头,后面可以跟字母、数字或下划线。不超过31个字符。字符间不可以留空格。区分大小写。23MATLABMATLAB的变量与函数(续)的变量与函数(续)l系统变量变量名意义ans用于存储计算结果的默认变量pi圆周率inf(Inf)无穷大,例如1/0 eps计算机的最小数,和1相加产生比1大的数,在pc机上为252。NaN(nan)不定量,如0/0 i或j虚数单位,i=j=sqrt(-1)242 2、函数、函数l数学函数函数名含义函数名含义abs(x)x的绝对值
13、atant(x)x的反正切sqrt(x)x的平方根cot(x)x的余切exp(x)e的x次方acot(x)x的反余切sin(x)x的正弦log(x)x的自然对数cos(x)x的余弦log10(x)x的常用对数asin(x)x的反正弦sinh(x)双曲正弦acos(x)x的反余弦cosh(x)双曲余弦tan(x)x的正切25函数(续)函数(续)l机器函数 pause 程序将暂时停在该函数所在位置,击任意键程序继续执行 echo on 在命令窗口显示正在执行的程序指令 cputime 给出MATLAB所耗用的总机器时间 clock 给出日期及当前时间262 MATLAB的数值计算 MATLAB运算
14、的基本数据对象是矩阵,标量可以看作是11的矩阵,向量可以看作是1n或n1的矩阵。因此,可以说MATLAB的数据结构就是矩阵,以矩阵运算为代表的基本运算功能一直是MATLAB引以为自豪的核心与基础。27一、矩阵的创建一、矩阵的创建l矩阵是线性代数的基本运算单元。l通常矩阵是指含有m行n列数值的矩形结构。矩阵中的元素可以是实数也可以是复数,由此可以将矩阵划分为实矩阵和复矩阵。lMATLAB支持线性代数所定义的全部矩阵运算。l在MATLAB中创建矩阵应遵循以下原则:矩阵的元素必须在方括号“”中。矩阵的同行元素之间用空格或逗号“,”分隔。矩阵的行与行之间用分号“;”或回车符分隔。矩阵的尺寸不必预先定义
15、。矩阵元素可以是数值、变量、表达式或函数。如果矩阵元素是表达式,系统将自动计算出结果。28矩阵的创建(续)矩阵的创建(续)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 7.389129矩阵的创建(续)矩阵的创建(续)2、通过
16、m文件创建矩阵将矩阵建立为m文件 先将矩阵按创建原则写入一个m文件中,在MATLAB命令窗口或程序中直接运行该m文件(输入该m文件名),即可将矩阵调入工作空间。3、通过函数创建矩阵函数功能eye(n)产生n阶单位矩阵ones(m,n)产生mn矩阵,元素都是“1”zeros(m,n)产生mn矩阵,元素都是“0”(零矩阵)产生空矩阵30矩阵的创建(续)矩阵的创建(续)4、其他构造矩阵的方法冒号法1冒号法构造向量冒号表达式的一般格式为:向量名初值:步长:终值。例4.在窗口输入 x=0:0.5:2回车后显示x=0 0.5000 1.0000 1.5000 2.0000。例5.在命令窗口输入 x=2:-
17、0.5:0回车后显示x=2.0000 1.5000 1.0000 0.5000 031矩阵的创建(续)矩阵的创建(续)指出:步长可以省略,省略步长,则步长为1。步长可以为负,此时初值大于终值。向量的元素比较多而又有增减规律时,这种方法非常便利。冒号法表示向量时,向量的全体成员是从初值开始,以步长为增量,直到不超过终值的所有元素构成的序列。冒号法的应用可以避免使用循环,提高程序运行速度。32矩阵的创建(续)矩阵的创建(续)2冒号法构造矩阵一般格式为:A(:,j):表示矩阵A的第j列;A(i,:):表示矩阵A的第i行。例6.建立矩阵 。解:A(1,:)=1:5%设置矩阵的第1行A=1 2 3 4
18、533矩阵的创建(续)矩阵的创建(续)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 1534二、矩阵的运算二、矩阵的运算 MATLAB对于矩阵与矩阵之间的运算的处理方法与线性代数中的相同 运算运算符表达式加+A+B减-A-B乘*A*B除/(右除)或(左除)A/B或BA 幂Ap转置(单引号)A35矩阵的运算(续)矩阵的运算(续)例8.求下面方程组的根。解:解线性方程组,可以使用矩阵的左除“”,即XAB。A=2,1,-3;3,-2,2;5
19、,-3,-1;B=5;5;16;%列向量 X=AB X=1 -3 -2 36矩阵的运算(续)矩阵的运算(续)指出:线性方程组A*XB有两种解法:X=AB或X=inv(A)*B,但一般用第一种解法,在MATLAB中,第二种解法所用时间是第一种解法的50倍。可以看出,同样解线性方程组,不同的算法的效率是有极大差距的,可见优化和选择算法是非常重要的。求逆运算inv(A)是重要的代数运算。37三、矩阵的操作三、矩阵的操作1、矩阵的大小测度 Size函数用来测试矩阵的大小,对于 矩阵A,size(A)返回一个行向量,它包含了矩阵的行数m和列数n。如果专门显示行数和列数,则可以采用如下格式:。例9.已知矩
20、阵 ,求矩阵的大小。38矩阵的操作(续)矩阵的操作(续)解:A=1 1 1 1 1;1 2 3 4 5;1 3 6 10 15 设A为已知矩阵A=1 1 1 1 1 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=539矩阵的操作(续)矩阵的操作(续)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
21、10 1540矩阵的操作(续)矩阵的操作(续)A(2,3)ans=3 A(3,5)=-1A=1 1 1 1 1 1 2 3 4 5 1 3 6 10 -141矩阵的操作(续)矩阵的操作(续)3、矩阵块的操作 利用冒号表达式对矩阵进行拆分、提取子矩阵是矩阵操作的重要方面。提取的规则是A(:,j)表示取矩阵A的第j列的全部元素;A(i,:)表示取矩阵A的第i行的全部元素;A(i,j)表示取矩阵A的第i行第j列交叉位置的元素;A(i:i+m,:)表示取矩阵A的第ii+m行的全部元素;A(:,k:k+n)表示取矩阵A的第kk+n列的全部元素;A(i:i+m,k:k+n)表示取矩阵A的第ii+m行内并在
22、第kk+n列中的全部元素。42矩阵的操作(续)矩阵的操作(续)例12.拆分矩阵的例子。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 A(2,3)ans=3 A(3,5)=-1A=1 1 1 1 1 1 2 3 4 5 1 3 6 10 -143矩阵的操作(续)矩阵的操作(续)A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20A=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A(1,:)ans=1 2
23、 3 4 544矩阵的操作(续)矩阵的操作(续)A(:,2:4)ans=2 3 4 7 8 9 12 13 14 17 18 19 A(2:3,4:5)ans=9 10 14 15 A(2:3,1:2:5)ans=6 8 10 11 13 1545矩阵的操作(续)矩阵的操作(续)例13.组合矩阵的例子。A=1,2;3,4A=1 2 3 4 B=2,3;4,5B=2 3 4 5 A,Bans=1 2 2 3 3 4 4 546矩阵的操作(续)矩阵的操作(续)A;Bans=1 2 3 4 2 3 4 5 A;6,7ans=1 2 3 4 6 747矩阵的操作(续)矩阵的操作(续)冒号表达式是MAT
24、LAB中非常重要的、应用非常广泛、也非常灵活的工具。利用冒号表达式比利用循环语句赋值解决同一问题要快得多,所以实际编程时一般应当尽量采用冒号表达式而不是用循环。483 MATLAB的图形处理49MATLABMATLAB的图形处理的图形处理(续)续)x,y,z=sphere(30);surf(x,y,z),box50二维图形的绘制二维图形的绘制一、二维图形的绘制1、数据绘图命令plotplot(y)当y为向量时,以y的分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线。若y为实数矩阵,按列绘制每一列所对应的曲线,图中曲线数等于矩阵的列数。plot(x,y)若y和x为同维向量,以x为
25、横坐标,以y为纵坐标绘制连线图。若x是向量,y是行数或列数与x的长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共同坐标。若x和y是同型的矩阵,则以x和y的对应列元素为横纵坐标分别绘制曲线,曲线条数等于矩阵的列数。plot(x,y1,x,y2,)以公共的x元素为横坐标,以y1,y2,y3,元素为纵坐标值绘制多条曲线。51二维图形的绘制(续)二维图形的绘制(续)例1以向量y=(1,2,5,4.5,3,6,1)的各个分量为纵坐标,分量序号为横坐标绘制顺序连接线。解:输入命令 y=1 2 5 4.5 3 6 1;plot(y)52二维图形的绘制(续)二维图形的绘制(续)53二维图形二维
26、图形(续续)例2.画出一条正弦曲线和一条余弦曲线。x=0:pi/10:2*pi;%构造向量 y1=sin(x);%构造对应的y1坐标 y2=cos(x);%构造对应的y2坐标 plot(x,y1,x,y2)%画出一个以x为横坐标,y1,y2为纵坐标的图形 指出:构造向量采用了所谓的冒号法,格式为 向量名初值:步长:终值%步长为1时可以省略。plot是针对向量或矩阵的列来绘制曲线的,也就是说,使用plot之前必须首先定义好曲线上每一点的x坐标和y坐标。在上述的格式中,x和y都可以是表达式。如果自变量的间隔取得比较大,光滑的曲线就会显示出折线的本来面貌。54二维图形二维图形(续续)55二维图形绘制
27、二维图形绘制(续)续)MATLAB绘制的其它图像的例子:例5.某次考试学生成绩优秀的占8%,良好的占20%,中等的占36%,及格的占24%,不及格的占12%。分别用饼图和条形图表示。解:x=8 20 36 24 12;subplot(221);pie(x,1 0 0 0 1);title(饼图);subplot(222);bar(x,grpup);title(垂直条形图);subplot(223);bar(x,stack);title(累加值为纵坐标的垂直条形图);subplot(224);barh(x,group);title(水平条形图);56fplot(fplot(续)续)572 2、绘
28、图控制命令、绘图控制命令(1)曲线控制命令 在使用plot等命令绘制曲线时可以指定曲线的颜色、线型和数据点图标。基本的调用格式为 plot(x,y,color line-style marker)颜色控制符表字符颜色字符颜色b蓝色m紫红色c青色r红色g绿色w白色k黑色y黄色58绘图控制绘图控制(续续)线型控制符表线型格式实线(默认)点线点划线虚线符号-:-.-59绘图控制绘图控制(续续)数据点标记控制符表标记符号数据点形式标记符号数据点形式.实心圆点大于号o(字母)空心圆点x=0:0.2:8;y=sin(x);plot(x,y,r:x)62绘图控制绘图控制(续续)63(2 2)图形的标注命令)
29、图形的标注命令图形标注函数函数意义title()给图形添加标题xlabel()标记横坐标ylabel()标记纵坐标text(x,y,)在x,y所定义的位置标注gtext()该命令提示在鼠标指定位置(光标显示为“”标注)axis(xmin xmax ymin ymax)指定显示范围Grid on(/of)添加或取消网格线64图形的标注图形的标注(续续)例7.给例2的图形加入网格和标注。(f2)x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)grid on%添加网格 xlabel(x轴)%横坐标名 ylabel(y轴)%纵坐标名 title(正弦
30、函数和余弦函数曲线)%标题 text(1.5,0.3,cos(x)%指定位置标注 gtext(sin(x)%用鼠标选择位置标注 axis(0 2*pi-1.2 1.2)%设置坐标轴的最大最 小值65图形的标注图形的标注(续续)66(3 3)图形的比较显示命令)图形的比较显示命令 默认的情况下,MATLAB每一次使用plot函数进行绘图,都将清除原有的图形,但有时候我们希望后面绘制的图形能和前面所绘制的图形进行比较。此时我们有两种方法,一是采用hold on(/off)命令,在同一个图形窗口中绘制新的图形叠加在原有的图形上。二是采用subplot(n,m,k)命令,将图形窗口分割成几个小窗口,在
31、每个窗口中画出一个图形。hold on(/off)保持绘图命令 subplot(n,m,k)将图形窗口分成n行m列个格子,在 第k个格子绘图,格子按从上到下依行计数。67图形的比较显示(续)图形的比较显示(续)例8.在同一个窗口中,使用两次plot函数 绘制两条曲线。x=0:0.2:12;plot(x,sin(x),-)hold on plot(x,cos(x),:)68图形的比较显示(续)图形的比较显示(续)69图形的比较显示(续)图形的比较显示(续)例9把当前窗口分割成四个区域,绘制四条函数曲 线。(f3)x=0:0.05:8;y1=2*sin(x);y2=2*cos(x);y3=sin(
32、2*x);y4=cos(2*x);subplot(2,2,1);plot(x,y1);title(2sinx)70图形的比较显示(续)图形的比较显示(续)subplot(2,2,2);plot(x,y2);title(2cosx)subplot(2,2,3);plot(x,y3);title(sin2x)subplot(2,2,4);plot(x,y4);title(cos2x)71图形的比较显示(续)图形的比较显示(续)72二、三维图形的绘制二、三维图形的绘制1、和二维图形相对应,MATLAB提供了一个三维曲 线绘制命令plot3,它的应用和plot类似,只是多了z方向的数据。例10.绘制一
33、条三维曲线。clear clc z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)73三维图形(续)三维图形(续)74三维图形(续)三维图形(续)2、绘制三维曲面的命令则有mesh(x,y,z)或surf(x,y,z)。它们的区别在于,前者绘制出的是一个用网格近似的曲面,后者绘制出的是一个真正表面图。例11.绘制多峰函数图。z=peaks(40);mesh(z);surf(z);peaks称为多峰函数,常用于三维曲面的演示。75三维图形(续)三维图形(续)76三维图形(续)三维图形(续)771、及时清空工作空间 在每一个程序的开头加上clear命令,以
34、清空内存中的自定义变量。2、注释 为了增强程序的可读性,程序中要注意编写注释。3、优化程序 1直接使用矩阵与向量,避免使用循环。2不显示不必要的中间结果。3对大型矩阵预先定义维数。4优先使用内部函数。5充分利用其他高级语言。6设置断点调试。7测试程序执行时间 tic用于启动秒表,toc用于停止秒表。tic和toc返回的是变量elapsed_time。4 MATLAB编程技巧78MATLABMATLAB编程技巧编程技巧例1.建立一个100100的魔方矩阵,并测定运行时间。解:tic%开始计时 A=magic(100);%运行程序,magic是魔方矩阵函数。toc%结束计时,显示所耗时间。在命令窗口观察运行结果为。elapsed_time=109.09404、注意格式5、利用帮助和演示 6、特别提示自定义变量和函数的名称不能和MATLAB命令及内部函数重名。MATLAB不支持汉字,汉字不能出现在变量名和函数名中。MATLAB对大小写敏感。79