MATLAB基础入门.ppt

上传人:1595****071 文档编号:86291335 上传时间:2023-04-14 格式:PPT 页数:56 大小:432.76KB
返回 下载 相关 举报
MATLAB基础入门.ppt_第1页
第1页 / 共56页
MATLAB基础入门.ppt_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《MATLAB基础入门.ppt》由会员分享,可在线阅读,更多相关《MATLAB基础入门.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、MATLAB基础入门基础入门主讲人:主讲人:主讲人:主讲人:Matlab基础入门1 Matlab软件基本介绍2 Matlab 软件界面3 变量的定义及特殊变量和常数4 基本运算5 矩阵操作6 m文件的创建7 面向过程的matlab程序设计8 Matlab绘图9 Matlab学习技巧及网络资源10 练习题1 Matlab软件基本介绍Matlab名字是由Matrix和Laboratory两个词的前三个字母组合而成的,是由MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。Matlab编程运算与人进行科学计算的思路和表达方式完全一致(主要面向过程)。不像学习其它高级语言如B

2、asic、Fortran和C等那样难于掌握。其基本数据类型是矩阵。具有强大的数值计算和图示能力。具有丰富的工具箱(ToolBox),例如统计工具箱、优化工具箱、神经网络、信号处理等等。2 Matlab 软件界面当前路径窗口历史命令窗口命令窗口工具栏主菜单栏当前目录路径文件详细信息工作区窗口快速启动窗口按钮3 变量的定义及特殊变量及常量3.1 变量的定义变量的定义变量不需要定义就可以使用,但必须赋值;变量名区分大小写;变量名的第一个字符必须为英文字母,并且变量名长度不超过31个字符;变量名可以包含下连字符、数字,但不能为空格符、标点;变量名不要和函数名重复。基本数据类型为矩阵,操作演示。3变量的

3、定义及特殊变量及常量3.2 特殊变量及常量特殊变量及常量ans 最近生成的无名结果eps 浮点数的相对误差pi 3.14145926 i 虚数单位 j 虚数单位Inf 无穷大,如n/0Nan 非数值型变量Realmin 最小的正浮点数,Realmax 最大的浮点数4 基本运算4.1 算术运算符算术运算符 加 减*乘(包括标量乘,矩阵乘,标量与矩阵乘)/除(包括标量除,矩阵除标量,数组除标量)矩阵求幂(矩阵必须为方阵).*矩阵对应元素相乘./矩阵对应元素相除.矩阵每个元素求幂注意:记不住时试一下!4 基本运算4.2 关系运算符关系运算符 小于 大于=大于等于=等于=不等于运算法则:若关系式成立,

4、结果为1;若关系式不成立,结果为0。4 基本运算4.3 逻辑运算符逻辑运算符&与|或 非运算法则:若逻辑真,结果为1;若逻辑假,结果为0。4 基本运算4.4 特殊运算符特殊运算符=变量赋值%注释符 换行符 矩阵转置符:冒号运算符 n:s:m 产生nm,步长为s的序列,s可以为 正或负或者小数,默认值为1。5 矩阵操作5.1 矩阵生成矩阵生成(1)矩阵的直接输入矩阵的直接输入按元素排列顺序直接输入,所有元素用方括号“”括住;同行元素用逗号或空格分隔,不同行元素用分号或回车分开.例5.1 A=1,2,3;4,5,6 输出结果:A=1 2 3 4 5 6 或 A=1 2 3;4 5 6 或 A=1

5、2 3 4 5 6 注注:若不指定输出变量,则系统默认ans为变量名;利用下标,比如A(i,j),可以访问矩阵元素 例如:a=A(2,1)输出为 a=45 矩阵操作(2)矩阵的函数生成矩阵的函数生成 空矩阵 zeros(m,n)零矩阵 ones(m,n)1矩阵 eye(m,n)单位矩阵 rand(m,n)(0,1)区间内的均匀分布随机矩阵例5.2 z=zeros(2,3),u=ones(3)z=0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 u=1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1

6、.0000 例5.3 e=eye(3,4),x=rand(1,3)e=1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 x=0.2311 0.8913 0.0185 5 矩阵操作5.2 向量(数组)的输入向量(数组)的输入(1)作为矩阵输入 例 A=1,2,3;%(行向量)B=1;2;3;%(列向量)C=rand(1,4);%(利用矩阵生成函数)(2)行向量的特殊输入方式由冒号a:d:b生成等差数组:从a到b公差为d(默认1)的等差数组.由函数linspace(a,b,n)生成

7、等差数组:从a到b共n(默认100)个数值.5 矩阵操作例5.4 A=1:5;%A=1 2 3 4 5(公差 缺省为1)B=1:2:7;%B=1 3 5 7 (公差为2)C=5:-2:-1;%C=5 3 1-1(公差为-2)linspace(0,1,4);%ans=0 0.3333 0.6667 1.0 x=linspace(0,1);%等差数组,从0到1默认划分为100个数值 5 矩阵操作5.3 矩阵的裁剪、拼接与修改矩阵的裁剪、拼接与修改(1)矩阵的裁剪在MATLAB中,矩阵的元素可用其行标、列标表示。从一个矩阵中取出若干行(列)构成新矩阵称为裁剪,其中冒号“:”的使用非常重要。例5.5

8、A=1 2 3 4;5 6 7 8;9 10 11 12;%定义矩阵A A(3,:)%提取A的第3行,ans=9 10 11 12 A(:,2)%提取A的第2列,ans=2 6 10 X=A(2:3,1,3,4)%提取A的第2,3行,1,3,4列则:X=5 7 8;9 11 125 矩阵操作(2)矩阵的拼接在MATLAB中,可按照分块矩阵思想,由小矩阵拼接组合成大矩阵,但应注意所有小矩阵维数应当相容。例5.6 由A的第2行,2行1列零向量及 2行3列单位阵拼接 成3行4列矩阵E.E=A(2,:);zeros(2,1),eye(2,3)E=5 6 7 8 0 1 0 0 0 0 1 0 A=1

9、2 3 4;5 6 7 8;9 10 11 12;5 矩阵操作(3)矩阵的编辑修改在MATLAB中,通过对矩阵的部分元素(子矩阵)重新赋值,可以实现对矩阵元素的编辑和修改。例5.7 A(3,1)=0%将A的第3行1列元素修改为0A=1 2 1 0 5 6 0 1 0 10 11 12 A(1:2,3:4)=eye(2)%将A的第1,2行3,4列子矩阵 改为2阶单位阵5 矩阵操作5.2 矩阵运算矩阵运算(1)矩阵的基本运算矩阵的基本运算 AB (A,B同维数,对应元素相加减)A*B (A列数=B行数,通常矩阵乘法)AB (左除,A,B同行数,方程AX=B解)B/A (右除,A,B同列数,方程XA

10、=B解)A (共轭转置)Ap (矩阵乘幂,A为方阵)5 矩阵操作(2)常数与矩阵的运算bA、b*A、bA、A/b (b与A各元素做相应运算,对于除法b只能做除数)(3)矩阵的特殊运算(点运算)A.*B、A.B、A./B、A.B (A、B维数相同,按对应元素运算)A.b、b./A、A.b、b.A (b与A各元素做相应运算)5 矩阵操作例5.8 X1=A+B,X2=C*B,X3=AB输出结果:X1=3 3 3 6 1 4X2=8 1 4 6 3 0 X3=0.7143 -0.2857 0.8571 0 0 0 0.4286 0.4286 -0.2857 其中:A=1 2 3 3 1 2B=2 1

11、0 3 0 2 C=1 2 3 05 矩阵操作5.3常用矩阵操作函数常用矩阵操作函数sum 矩阵求和prod 矩阵相乘size 矩阵大小length 矩阵长度sort 矩阵排序max/min 矩阵最大值/最小值reshape 矩阵变形函数repmat 矩阵堆叠find 矩阵查询6 M文件的创建1脚本文件(亦称命令M-文件)脚本文件的结构比较简单,它没有输入参数和输出参数,只是一些MATLAB命令行的组合。脚本文件中定义的变量都是全局变量。2函数文件(亦称函数M-文件)通常函数文件包含以下几个部分:(1)函数定义行:位于文件首行,以function开头;(2)帮助信息:紧跟函数定义行后,以%开头

12、注释行;(3)函数体:函数的执行语句部分;(4)注释部分:命令行中以“%”开始直到该行结束。6 M文件的创建语句的一般形式:变量=表达式注:注:若缺省“变量=”,则系统默认ans为变量名。若语句末尾以分号“;”结束,则命令执行后不显示计算结果若语句太长可以使用续行符“”将其延续到下一行一行中可书写多个语句,各语句之间要用逗号(显示计算结果)或分号(不显示计算结果)分开。例6.1 给定矩阵A=1 2 3;4 5 6;%输入矩阵AB=4 0 1;0 1 2;%输入矩阵BC=A+B%计算输出A与B的和D=A-B%计算输出A与B的差编写命令文件,输入矩阵A、B,并计算输出它们的和与差。解:建立如下M-

13、文件SY1.m将上述文件以SY1.m为名存盘,然后在命令窗口调用此M-文件,则有6 M文件的创建C=5 2 4 4 6 8;SY1function C,D=SY2(A,B)%给定矩阵A和B,计算输出其矩阵和C与矩阵差DC=A+B;%计算矩阵和D=A-B;%计算矩阵差例6.2 编写函数文件,计算任意两个同维数矩阵的和与差.解:建立如下函数文件SY2.m以SY2.m为名存盘,然后在命令窗口调用此函数文件.D=-3 2 2 4 4 4;6 M文件的创建 A=1 2 3;4 5 6;B=4 0 1;0 1 2;%输入参数赋值 C,D=SY2(A,B)%调用函数SY2.m 注:函数文件的首行须以func

14、tion开头,后跟输出参数(多于1个时用方括号括起),函数名及输入参量(圆括号括起),参量之间用逗号隔开。函数文件的变量一般是局部变量,可以用global命令将某些变量说明为全局变量。函数文件名一般应与函数定义行中的函数名相一致。函数文件可以递归调用。C=5 2 4 4 6 8;D=-3 2 2 4 4 4;6 M文件的创建1M-文件的建立与编辑方法1:在命令窗口输入命令:edit M-文件名 即可打开相应M-文件编辑器。方法2:单击菜单“File”-“New”-“M-file”即可打开空白M-文件编辑器;2M-文件的调用方法1:在MATLAB命令窗口中直接键入M-文件名,然后回车,即可运行该

15、M-文件;方法2:在M-文件编辑窗口中,单击工具钮 RUN 或 菜单 Debug/RUN,即可运行该M-文件。6 M文件的创建 其中,实际参数和形式参数可以不同;输入参数要用圆括号将其括起,输出参数多于一个时,要用方括号“”将其括起;参数间用逗号隔开。注:被调用的M-文件必须位于当前目录或文件搜索路径范围内。调用函数文件时,须事先对输入参量赋值,然后按照以下格式调用输出参量=函数名(输入参量)(回车)使用以下命令格式可将指定目录设置为当前目录:cd 路径目录名6 M文件的创建7 面向过程的matlab程序设计 Matlab的工作方式有二种 1.交互式的指令操作方式。即用户在命令窗口中输入命令并

16、按下回车键后,系统执行该指令并立即给出运算结果。2.M文件的编程方式。M文件是由 matlab语句构成的文件,且文件名必须以.M为扩展名,如example.m。用户可以用任何文件编辑器来对M文件进行编辑。7 面向过程的matlab程序设计M文件的程序执行过程:从上到下,依次执行。面向过程的程序设计程序结构主要是循环循环与判断判断,相应的控制流语句如下:7.1 7.1 循环结构循环结构(1)for-end 循环 用于循环次数事先确定的,格式为 for i=n:s:m 语句体 end 其中,s 为步长,可以为正数,负数或小数。7 面向过程的matlab程序设计 基本功能:循环循环变量依次取矩阵的每

17、一列,然后执行一次语句体;遍历矩阵各列后,然后执行end的后续命令。注:注:格式中步长s省略时,其则默认步长为1.for循环不能由循环体内给循环变量赋值来终止;for循环可以按需要进行嵌套;例7.1 编写函数文件,计算并输出矩阵A的各行向量的元素和.%调用函数 A=1 2 3 4;5 6 7 8A=1 2 3 4 5 6 7 8 X=hanghe(A)X=10 26解:编写函数文件(hanghe.m)如下:function X=hanghe(A)m,n=size(A);%计算A维数 X=zeros(m,1);%零初始化 for i=1:n y=A(:,i);X=X+y;end7 面向过程的ma

18、tlab程序设计(2)while语句while 语句体end 基本功能:若关系表达式值为真,则反复执行语句体,直至关系表达式值为假,则终止循环,转而执行end的后续命令。注注:若关系表达式值为矩阵,则仅当结果矩阵的所有元素均为真时才执行循环体;否则 不执行循环体。循环体中用break命令可强行中止循环;用continue命令可中止循环的当前迭代,转而执行下一次迭代。for用于循环次数确定,而while用于循环次数不确定。7 面向过程的matlab程序设计运行程序结果:n=10 E=0.9766E=1000;n=0;%赋初值,n用以累计循环次数while E1%进入循环 E=E/2;n=n+1;

19、%EPS的值减半,n累计加1end E%输出小于或等于1的E n%输出衰减次数n 例7.2 编写M-文件,计算使E=1000小于1的半衰减次数。解:编写命令文件如下:7 面向过程的matlab程序设计7.27.2判断结构判断结构(1)if 语句if elseif elseif else end基本功能:若表达式j值为真,则执行语句体j(j=1,n),否则,执行语句体n+1;然后执行end后续命令.注:else子句与elseif子句不是必需的,但关键字“end”不能省.7 面向过程的matlab程序设计解:编写函数文件(fenduan.m)如下:例7.3 编写函数文件,计算分段函数:functi

20、on y=fenduan(x)if x=0 y=0;elseif x y1=fenduan(-3)y1=0 y2=fenduan(3.5)y2=-0.3508 y3=fenduan(7.3)y3=1.01687 面向过程的matlab程序设计switch case 值x1 case 值xn otherwise end(2)switch语句基本功能:首先计算表达式或变量的值,若该值与值x1,x2,xn相等,则执行相应的语句体,否则,执行语句体n+1;然后执行end的后续命令。注:otherwise子句不是必需的,但关键字“end”不能省.7 面向过程的matlab程序设计例7.4 编写命令文件,

21、从键盘输入某学生成绩(5分制),由计算机判断并输出该生成绩的优良等级.解:编写命令文件(SY00507.m)如下:x=input(请输入您的分数:x=);switch x case 5 disp(优秀!);case 4 disp(良好!);case 3 disp(及格!);otherwise disp(不及格!)end%运行程序 SY00507 请输入您的分数:x=4良好!7 面向过程的matlab程序设计7.3 其它控制流语句其它控制流语句(1)try 语句try catch end 基本功能:正常情况下只执行 ;当执行语出现可预见的错误时,则将错误信息写入系统变量 lasterr,并转向执

22、行。7 面向过程的matlab程序设计function X=SY(A,B)try X=A*B;catch disp(*错误乘法:A*B*)lasterr X=;end 例7.5 计算矩阵A,B的积,当不能相乘时,输出空矩阵 并显示相应错误信息。解:编写函数文件(SY.m)如下:7 面向过程的matlab程序设计8 Matlab绘图MATLAB系统提供了丰富的二维和三维绘图函数,用户在绝大多数情况下直接利用这些函数即可达到图形绘制要求,而不必访问那些低层绘图对象,因此极大地方便了用户。8 Matlab绘图8.1 二维图形二维图形基本格式 plot(x,y,s)注:注:若缺省x,则绘制以y元素的下

23、标为横标的折线图;若y为复向量,则plot(y)等效于plot(real(y),imag(y);若缺省s,则以默认线型、颜色绘制曲线。线型(线方式)-实线 :点线 -.虚点线 -波折线 .圆点 +加号 *星号 x x形 o 小圆颜色:y 黄 r 红 g 绿 b 蓝 w 白 k 黑 m 紫 c 青8 Matlab绘图例8.1 绘制正玄曲线 x=linspace(0,2*pi,30);y=sin(x);plot(x,y)%默认线型、颜色figure%打开一个新的图形窗口plot(x,y,b*)%指定颜色、线型:绿色星号 8 Matlab绘图画多重线(同一个坐标系下画多条曲线)方法1:plot(x1

24、,y1,x2,y2,xn,yn)方法2:plot(X,Y)%X,Y为矩阵方法3:hold on%保持当前图形窗口绘图状态 plot(x1,y1),plot(xn,yn)hold off%结束当前图形窗口绘图状态8 Matlab绘图例8.2 在同一个坐标系下绘制正玄曲线及余玄曲线 x=linspace(0,2*pi,30);y1=sin(x);y2=cos(x);plot(x,y1,x,y2)或 Y=sin(x);cos(x);plot(x,Y)或 hold on plot(x,y1)plot(x,y2)hold off 8 Matlab绘图网格与标记(在图上加网格、标题、轴标记)加图标题:ti

25、tle(字符串)标记X轴:xlabel(字符串)标记Y轴:ylabel(字符串)增加/取消网格:grid/grid off加注释:text(a,b,字符串)%坐标定位 gtext(字符串)%鼠标定位增加/取消图例:legend(字串1,字串2,)/legend off8 Matlab绘图例8.3 绘制正玄,余玄曲线,并加上标题,网格,注释等。x=linspace(0,2*pi,30);y1=sin(x);y2=cos(x);plot(x,y1,x,y2)axis(0 7-1 1)title(正玄/余玄曲线)xlabel(时间T),ylabel(电压V)gtext(y=sin(x)gtext(y

26、=cos(x)grid legend(sin,cos)8 Matlab绘图多图显示命令:subplot(m,n,p)将图形窗口分成mn个图形区域,选择第p个子图区域.子图区域编号沿头一行自左向右,接着排下一行,。例8.4 在一个图形窗口分别绘制以下4个函数曲线图,并加上图标题:y=sin(x),z=cos(x),u=2sin(x)cos(x),v=sin(x)/cos(x)8 Matlab绘图程序:程序:x=linspace(0,2*pi,30);y=sin(x);subplot(2,2,1),plot(x,y)axis(0 2*pi-1 1),title(y=sin(x)z=cos(x);s

27、ubplot(2,2,2),plot(x,z)axis(0 2*pi-1 1),title(z=cos(x)u=2*sin(x).*cos(x);subplot(2,2,3),plot(x,u)axis(0 2*pi-1 1),title(u=2sin(x)cos(x)v=sin(x)./cos(x);subplot(2,2,4),plot(x,v)axis(0 2*pi-20 20),title(v=sin(x)/cos(x)8 Matlab绘图其它有关函数(1)figure 打开一个新的图形窗口(2)close/clf或clg 关闭/清除图形窗口(3)fplot(F,xmin xmax y

28、min ymax)例8.5 绘制函数y=sin(x)/x曲线图.fplot(sin(x)./x,-20 20-0.4 1.2)gtext(sin(x)/x)8 Matlab绘图8.2 三维绘图三维绘图绘制三维线图或点图 plot3(x,y,z)(x,y,z是同维向量)或 plot3(x,y,z,s)(s指定线型和颜色)例8.6 作螺旋线(0t )x=sin(t),y=cos(t),z=t t=0:pi/50:10*pi;x=sin(t);y=cos(t);z=t;plot3(x,y,z,b)8 Matlab绘图绘制网格曲面(分4步)(1)产生x轴和y轴分点向量x,y;(2)产生网格数组(矩阵)

29、:X,Y=meshgrid(x,y)(各行为x的拷贝,各列为y的拷贝)(3)计算函数值(高度)矩阵:Z=f(X,Y)(4)绘制三维网格图形:mesh(X,Y,Z,C)或 surf(X,Y,Z,C)其中矩阵Z表示高度值,矩阵C指定颜色(缺省取C=Z)。8 Matlab绘图例8.7 绘制“阔边帽”曲面:程序1:x=-7.5:0.5:7.5;y=x;X,Y=meshgrid(x,y);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;mesh(X,Y,Z)%可加c 等高线(7.5x 7.5,-7.5y 7.5)8 Matlab绘图程序2:x=-7.5:0.5:7.5;y=x;X,Y=m

30、eshgrid(x,y);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;surf(X,Y,Z)%可加c 等高线shading interpview(1 1 1)axis(-10 10-10 10-1 1)9 Matlab学习技巧及网络资源学习MATLAB编程的关键是多练系实际的案例,对于不清楚的功能要不断尝试,通过网络查找、学习,例如百度搜索、谷歌搜索。推荐网络资源:(1)MATLAB中文论坛(2)MATLAB技术论坛(3)Matlab Central10 练习题1 将课件第7部分内容中未采用for或if控制命令的算例改写为只用for或if控制命令设计的程序。(例7.2,7.4,7.5)2 对一组乱序排列的数据设计排序程序,从小到大或从大到小,设计成可以调用的函数。数组如:X=6 9 7 5 4 3 2 8 11 9;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁