matlab软件教程.ppt
- 文档编号:18704932
- 上传时间:2023-10-13
- 格式:PPT
- 页数:111
- 大小:1.51MB
matlab软件教程.ppt
《matlab软件教程.ppt》由会员分享,可在线阅读,更多相关《matlab软件教程.ppt(111页珍藏版)》请在冰点文库上搜索。
第一章Matlab基础知识与基本操作,1.1Matlab概述1.2Matlab进入与退出1.3Matlab桌面工作环境1.3.1窗口1指令窗口(CommandWindow)该窗口是进行Matlab操作最主要的窗口。
窗口中“”为指令输入提示符,其后输入运算指令,按回车键即可执行运算,并显示运算结果(图形除外)。
若在指令后输入“;”,则不显示计算结果,但结果保存在内存中。
“%”后面书写的是用于解释的文字,不参与运算。
例如:
a=1;b=2;c=a+b%键入后,按回车(Enter)键运行结果:
c=3,2工作空间(Workspace)在默认的Matlab工作桌面环境,位于左上方窗口前台,列出内存中Matlab工作空间的所有变量的变量名(Name)、值(Value)、尺寸(Size)、字节数(Bytes)、和类型(Class)。
用鼠标选中变量,单击右键可以进行打开(OpenSelection)、保存(Saveas)、清除(Delete)、修改(EditValue)等操作。
3当前目录(CurrentDirectory)在默认的Matlab工作桌面环境,位于左上方窗口的后台,用鼠标点击可以切换到前台。
该窗口列出当前目录的程序文件(.m)和数据文件(.mat)等。
鼠标选中文件,单击右键可以进行打开(Open)、运行(Run)、删除(Delete)等文件操作。
4指令历史(CommandHistory)该窗口列出在指令窗口执行过的Matlab指令行的历史记录。
用鼠标选中指令行,单击右键可以进行复制(Copy)、执行(EvaluateSelection)、删除(Delete)等操作。
除上述窗口外,Matlab常用的窗口还有编程器窗口、图形窗口等。
第一章Matlab基础知识与基本操作,1.3.2菜单和工具栏,表1.1Matlab部分菜单和工具栏,第一章Matlab基础知识与基本操作,1.4Matlab语言基础1.4.1数值计数Matlab的数值采用的是常用的十进制数表示法,可以带小数点或者负号。
以下计数都是合法的。
2-330.033.431582.6-e2.1e461.4.2变量Matlab的具体命名规则和特殊规则见教材表1.2和表1.3所示。
1.4.3运算符1数学运算符:
+(加)、-(减)、*(乘),(左除)、/(右除)、(乘幂)2关系运算符:
(小于)、(大于)、=(小于等于)、=(大于等于)、=(等于),=(不等于)3逻辑运算符:
&(逻辑与运算)、|(逻辑或运算)、(逻辑非运算),第一章Matlab基础知识与基本操作,1.4.4表达式例1.1用Matlab的两种表达式形式计算56+sin+e3的结果。
形式1:
56+sin(pi)+exp(3)运行结果:
ans=1.5645e+004形式2:
a=56+sin(pi)+exp(3)运行结果:
a=1.5645e+004,第一章Matlab基础知识与基本操作,1.4.5数据显示格式用户可以根据需要,对命令窗口的数值计算结果的显示格式进行设置。
设置的方法是,选中桌面或者指令窗口中的File|Prefereces菜单,将弹出一个参数设置对话框,选择需要的各项参数完成设置。
1.4.6复数形式Matlab不需要对复数作特殊处理,只需预定义变量i或j作为虚数单位。
例如:
a1=2+4i%附加的i表示虚部a2=2-3j%附加的j表示虚部a3=2*(4-sqrt(-1)*2)%sqrt(-1)表示虚部a4=5+sin(0.5)*i,1.4.7标点与注释如同C语言中注释一行内容用“/”一样,Matlab中用“%”实现注释功能,可以利用这一特性对所做工作进行文档注释。
可以把多条命令放在同一行,只需在中间用逗号或者分号隔开。
逗号告诉Matlab显示结果,分号说明还有下一条命令等待输入,这时不会显示中间结果。
如果想在下一行继续注释的话,必须在行首再加“%”,否则系统会报错。
1.5Matlab常用函数1.6Matlab基本对象矩阵1.6.1矩阵的建立1直接输入创建矩阵,例1.2创建33数值矩阵a,b和字符矩阵c。
a=1,2,3;4,5,6;7,8,9运行结果:
a=123456789b=1.5123.3;14550.6;-7-0.811.9运行结果:
b=1.500012.00003.300014.000055.00000.6000-7.0000-0.800011.9000c=string运行结果:
c=string,2向量法创建矩阵例1.3建立一个10以内的奇数矩阵。
a=1:
2:
10运行结果:
a=35793函数法创建矩阵利用内部语句和函数还可以快速产生一些特别有用的矩阵,如单位矩阵、随机矩阵、零矩阵等4用矩阵编辑器来创建和修改矩阵当输入的矩阵较大,不适合用手工直接输入时,可用矩阵编辑器(ArrayEdittor)来进行输入与修改,Matlab允许在运算和函数中使用复数矩阵,输入复数矩阵有下列两种方法:
a=1+2i3+4i;5+6i7+8i运行结果:
a=1.0000+2.0000i3.0000+4.0000i5.0000+6.0000i7.0000+8.0000i两式具有相同的结果。
1.6.2矩阵的操作1.元素操作Matlab允许用户对一个矩阵的单个元素进行操作,可以通过元素的下标进行(行、列的序号是从1开始的),如提取矩阵A的第二行第三列元素的指令为A(2,3)。
修改某些元素的值不会影响其他元素的值。
如果用户给出的行下标或列下标超出了原来的行数或列数,将自动扩展原来的矩阵,并将扩展后未赋值的矩阵元素置为零。
2.提取子块例1.4输入一个43的矩阵,选出前三行构成一个新矩阵,再选出前二列构成另一个矩阵。
a=123;456;789;101112;b=a(1:
3,:
)运行结果:
b=123456789c=a(:
1:
2)运行结果:
c=1245781011,3.矩阵合并把两个矩阵合并成一个大矩阵,有两种形式:
C=A;B说明:
A矩阵与B矩阵的列数必须相同,B矩阵补在A矩阵的下面。
C=A,B说明:
A矩阵与B矩阵的行数必须相同,B矩阵补在A矩阵的右面。
4.矩阵的展开其指令格式为:
B=A(:
),例1.5把矩阵A=135;7911和矩阵B=246合并成一个矩阵,再转置后展开。
A=135;7911;B=246;C=A;B运行结果:
C=1357911246C=C%将矩阵C转置运行结果:
C=1723945116D=C(:
),运行结果:
D=13579112461.6.3矩阵的运算加法:
+;减法:
-;乘法:
*;左除:
;右除:
/;乘幂:
;A的转置transpose(A)或A;数k乘以A:
k*A;A的行列式:
det(A);A的秩:
rank(A);求A的逆:
inv(A)或(A)-1。
1.7Matlab符号计算基础1.7.1创建符号变量和符号矩阵函数sym的调用格式为:
符号变量名=sym(表达式)说明:
函数sym可创建一个符号变量,表达式可以是字符、字符串、数学表达式或字符表达式等。
函数syms的调用格式:
syms符号变量名1符号变量名2符号变量名3说明:
函数syms可一次创建多个符号变量。
例1.6创建符号变量。
a=sym(matlab)运行结果:
a=matlabb=sym(3*x2+4*x+7)运行结果:
b=3*x2+4*x+7,例1.7创建符号矩阵。
e=135;246;7911;%建立数值矩阵m=sym(e)%创建符号矩阵运行结果:
m=1,3,52,4,67,9,11,1.7.2符号表达式的基本运算函数例1.8计算表达式x3-1与表达式x-1的和、差、积、商和乘方。
symsxs1=x3-1;s2=x-1;symadd(s1,s2)运行结果:
ans=x3-2+xsymsub(s1,s2)运行结果:
ans=x3-xsymmul(s1,s2),运行结果:
ans=(x3-1)*(x-1)symdiv(s1,s2)运行结果:
ans=(x3-1)/(x-1)sympow(s1,s2)运行结果:
ans=(x3-1)(x-1),1.7.3符号表达式的化简函数符号数学工具箱提供了符号表达式的因式分解、展开、合并、化简、通分等数例1.9对表达式进行因式分解。
symsx%在命令窗口创建符号变量xf=factor(x3-1)运行结果:
f=(x-1)*(x2+x+1),例1.10展开三角表达式sin(a+b)。
s=sym(sin(a+b);%用sym函数创建符号变量expand(s)运行结果:
ans=sin(a)*cos(b)+cos(a)*sin(b)例1.11化简分式(4x2+8x+3)/(2x+1)。
symsxs=(4*x2+8*x+3)/(2*x+1);simplify(s)运行结果:
ans=2*x+3,1.7.4符号表达式的替换函数函数Subexpr的调用格式为:
R,SYM=subexpr(S,SYM)说明:
此函数用变量SYM(字符或字符串)的值代替符号表达式S中重复出现的字符串,R是返回替换后的结果。
函数subs的调用格式为:
R=subs(S,old,new)说明:
该函数是用新的符号变量new替换原来符号表达式S中的变量old,R是替换后的符号表达式。
需要注意的,当变量new是数值形式时,显示的结果虽然是数值,但它事实上是符号变量。
要强制地求值需要用vpa函数或者eval函数。
第二章Matlab绘图功能与程序设计,2.1二维图形2.1.1基本绘图命令MATLAB最常用的最基本的绘图函数命令是plot()。
其调用格式如下:
plot(Y)若Y为向量,则绘制的图形以向量索引为横坐标值、以向量元素值为纵坐标值。
plot(X,Y)一般来说是绘制向量Y对向量X的图形。
plot(X,Y,s)绘制不同的线型、标识、颜色等的图形时,可调用此形式,其中s为一字符,可以代表不同线型、点标、颜色。
2.1.2特殊的二维图形函数1特殊坐标系的二维图形函数具体来说就是对数坐标系、极坐标系以及双y轴坐标系等。
绘制对数坐标曲线的函数有三个:
semilogx()、semilogy()、loglog()。
例2.5对数组x=y=0:
1:
1000,试用函数semilogx()绘制其曲线。
clearx=0:
1:
1000;y=0:
1:
1000;semilogx(x,y)xlabel(x)ylabel(y)gridon,对于极坐标系,MATLAB语言也提供了相应的函数加以处理,即函数polar,该函数调用形式如下:
polar(theta,rho)或polar(theta,rho,s)其中,输入变量theta为弧度表示的角度向量,rho是相应的幅向量,s为图形属性设置选项。
例2.6绘制如图2-6所示极坐标下的二维图形x=0:
0.01*pi:
4*pi;y=sin(x/2)+x;polar(x,y,-),双极坐标绘制二维图的函数plotyy。
其调用格式有以下几种:
plotyy(X1,Y1,X2,Y2)plotyy(X1,Y1,X2,Y2,fun)plotyy(X1,Y1,X2,Y2,fun1,fun2)例2.7绘制如图2-7所示的双纵坐标二维图x=0:
0.1*pi:
2*pi;y=sin(x);z=exp(x);plotyy(x,y,x,z,plot,semilogy),2二维特殊函数图例2.8绘制条形图x=1:
10;y=rand(10,1);bar(x,y);例2.9绘制饼图x=2468;pie(x),例2.10绘制等高线图contour(Z,N/V)contour(X,Y,Z,N/V)N为所绘等高线的条数,V为输入向量,等高线的值为对应向量的元素值。
a=rosser;v=-1000,-500,-100,0,100,500,1000;contour(a,v)contourf(a,v),2.2三维图形2.2.1基本绘图命令1plot3函数plot3(x,y,z)x,y,z为相同维数的向量,绘出这些向量表示的点的曲线。
plot3(X,Y,Z)X,Y,Z为相同阶数的矩阵,绘出矩阵列向量的曲线。
plot3(X,Y,Z,s)s为定义线型的字符串。
plot3(x1,y1,z1,s1,x2,y2,s2,)这是组合绘图调用形式。
例2.11绘三维螺旋线x=0:
pi/50:
10*pi;y=sin(x);z=cos(x);plot3(x,y,z);,2网图函数X,Y=meshgrid(x,y)x,y为给定向量,用来定义网格的划分区域和划分方法。
矩阵X和Y为网格划分后的数据矩阵。
例2.12绘制网图x,y=meshgrid(-3:
0.1:
3,-2:
0.1:
2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);plot3(x,y,z),例2.13mesh函数绘制三维面图x=-8:
0.5:
8;y=x;a=ones(size(y)*x;b=y*ones(size(x);c=sqrt(a.2+b.2)+eps;z=sin(c)./c;mesh(z),meshc与mesh调用方式相同,且能绘制相应的等高线。
例2.14meshc函数绘制三维面图x,y=meshgrid(-4:
0.5:
4);z=sqrt(x.2+y.2);meshc(z),meshz与mesh调用方式相同,增加了边界面屏蔽。
例2.15meshz函数绘制的三维面图x,y=meshgrid(-4:
0.5:
4);z=sqrt(x.2+y.2);meshz(x,y,z),3着色函数surf(X,Y,Z)绘制着色的三维表面图,参数设置与mesh相同。
例2.16surf绘制的三维着色面图x,y=meshgrid(-4:
0.5:
4);z=sqrt(x.2+y.2);surf(x,y,z),2.2.2特殊的三维图形函数例2.16绘制三维饼图x=2468;pie3(x,0,0,1,0),柱面图:
X,Y,Z=cylinder(R,N)R为母线向量,N为旋转圆周上分割线的条数。
例2.17绘制柱面图x=0:
pi/20:
pi*3;r=5+cos(x);a,b,c=cylinder(r,30);mesh(a,b,c),2.3四维表现图为了表现四维图像,引入了三维实体四维切片色图,它由函数slice来实现,其调用格式如下:
slice(X,Y,Z,V,Sx,Sy,Sz)绘制向量Sx,Sy,Sz中的点沿x,y,z方向的切片图。
数组X,Y,Z用来定义V的坐标。
在每一点得颜色必须由对容量V的插值来决定。
V必须为MNP阶的矩阵。
slice(X,Y,Z,V,XI,YI,ZI)绘制沿XI,YI,ZI数组定义的曲面的通过容量V的切片图。
slice(V,Sx,Sy,Sz)或slice(V,XI,YI,ZI)假设X=1:
N,Y=1:
M,Z=1:
Pslice(,method)由method指定使用的插值方法。
其值可以为linear,cubic或nearest。
默认为linear。
H=slice()返回处理surface对象的向量。
例2.18可视化函数,自变量的范围分别为-2x,y,z=meshgrid(-2:
.2:
2,-2:
.25:
2,-2:
.16:
2);v=x.*exp(-x.2-y.2-z.2);slice(x,y,z,v,-1.2.82,2,-2-.2)colorbar(horiz)view(-30,45),2.4图形处理技术2.4.1图形的控制1坐标轴控制函数axis(V)V为坐标轴范围数组:
二维图形:
V=XMIN,XMAX,YMIN,YMAX三维图形:
V=XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAXaxis控制字符串,具体的控制字符串的表达形式如教材表2.4所示。
2坐标轴缩放函数zoomzoom控制字符串实现对二维图的缩放on允许对图形缩放off禁止对图形缩放(factor)以factor为缩放因子进行坐标轴缩放out恢复所进行的一切缩放xon只允许对x轴进行缩放yon只允许对y轴进行缩放3.平面的坐标网图函数gridgridon/off显示和取消网格4.坐标轴封闭函数boxboxon/off四周显示坐标轴和常规坐标轴2.4.2图形的标注,1.坐标轴标注titlexlabelylabel(标注,属性1,属性值1,)例2.19坐标轴标注示例x=0:
0.1*pi:
2*pi;y=sin(x);plot(x,y)xlabel(x(02pi),FontWeight,bold);ylabel(y=sin(x),FontWeight,bold);title(正弦函数,Fontsize,12,fontweight,bold,fontname,黑体),例2.20标注的显示控制与上下标示例x=-10:
0.1:
10;y=exp(-x.2/2);title(bfy=e-x2/2),2文本标注text(x,y,标注文本及控制字符串)(x,y)为给定标注文本在途中添加的位置。
例2.21文本标注示例x=1:
0.1*pi:
2*pi;y=sin(x);plot(x,y);text(3*pi/4,sin(3*pi/4),leftarrowsin(3pi/4)=-7.707),例2.22复杂文本标注x=1:
0.1*pi:
2*pi;y=sin(x);plot(x,y);text(3*pi/4,sin(3*pi/4),leftarrowsin(3pi/4)=,num2str(sin(3*pi/4),fontsize,12)text(5*pi/4,sin(5*pi/4),sin(5pi/4)=,num2str(sin(5*pi/4),rightarrow,.Horizontalalignment,right,fontsize,12),3交互式文本标注gtext(s)执行时,图形中出现“十”字型交叉线供用户选择标注位置。
S为标注内容的字符串,标注内容为多行时,s为一单元型字符数组。
4图例标注legend(标注1,标注2,)标注1、标注2等分别对应绘图过程中绘制的先后顺序的曲线。
例2.23图例标注示例x=1:
0.1*pi:
2*pi;y=sin(x);z=cos(x);plot(x,y,x,z)legend(sin(x),cos(x),2.4.3图形的保持与子图1图形的保持holdon启动图形保持功能,此后所有的图形都添加到当前的图形窗口中,系统会自动调整坐标。
holdoff关闭图形保持功能。
例2.24图形保持示例x=0:
0.1*pi:
2*pi;y=sin(x);z=cos(x);plot(x,y,-*)holdonplot(x,z,-o)plot(x,y+z,-h)legend(sin(x),cos(x),sin(x)+cos(x),0)holdoff,2子图subplot(m,n,p)将一个图形窗口分隔成mn格区域,参数p指定子绘图区域。
例2.25图形的子图示例x=0:
0.1*pi:
2*pi;subplot(2,2,1);plot(x,sin(x),-*)title(sin(x)subplot(2,2,2);plot(x,cos(x),-o)title(cos(x)subplot(2,2,3);plot(x,sin(x).*cos(x),-x)title(sin(x)*cos(x)subplot(2,2,4);plot(x,sin(x)+cos(x),-h)title(sin(x)+cos(x),2.5M文件2.5.1命令式文件例2.26通过M脚本文件,画出下列分段函数所表示的曲面。
1编写M脚本文件%Thisismyfirstexample.a=2;b=2;clf;%CLFClearcurrentfigurex=-a:
0.2:
a;y=-b:
0.2:
b;fori=1:
length(y)forj=1:
length(x)ifx(j)+y(i)1z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2-1.5*x(j);elseifx(j)+y(i)=-1z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2+1.5*x(j);elsez(i,j)=0.7575*exp(-y(i)2-6.*x(j)2);endendendaxis(-a,a,-b,b,min(min(z),max(max(z);colormap(flipud(winter);surf(x,y,z);,2运行文件使mypro1.m所在目录成为当前目录,或让该目录处在MATLAB的搜索路径上,然后运行以下指令,便可得到图形。
2.5.2函数式文件函数式文件语法为:
function返回参数列表=函数名(输入参数列表)例2.27通过M函数文件画出上例中分段函数的曲面。
functionmypro2(a,b)%Thisismysecondexample.%aDefinethelimitofvariablex.%bDefinethelimitofvariabley.进行上述修改后,对zx82.m再次实施“保存”操作。
在MATLAB指令窗中,运行以下指令,就能产生与图8.1-1-2完全相同的图形。
zx82(2,2),例2.28计算第n个Fibonnaci数打开命令编辑窗口,编写如下程序:
functionf=fibfun(n)%FIBFUNforcalculatingFibonaccinumbersifn2f=fibfun(n-1)+fibfun(n-2);elsef=1;end运行结果:
fibfun(19)ans=4181,2.6控制语句2.6.1循环语句1for循环for循环的最大特点是,它的循环判断条件通常是对循环次数的判断,也就是说,在一般情况下,此循环语句的循环次数是预先设定好的。
for循环语句的一般格式如下:
forv=expression(表达式)statements(执行语句);end,例2.29一个简单的for循环示例。
fori=1:
10;%i依次取1,2,10,.x(i)=i;%对每个i值,重复执行由该指令构成的循环体,end;x%要求显示运行后数组x的值。
运行结果:
x=12345678910,例2.30设有向量t,t=-1,0,1,3,5,由此生成一个55阶的Vandermonde(范德蒙)矩阵。
t=-10135;n=max(size(t);forj=1:
nforI=1:
na(I,j)=t(I)(n-j);endend运行结果:
a=1-11-11000011111181279316251252551,2while循环同for循环比起来,while语句的判断控制可以是一个逻辑判断语句,因此,它的适用范围会更广一些。
while循环语句的语句格式为:
whileexpressionstatementsEnd例2.31Fibonacci数组的元素满足Fibonacci规则:
,;且。
现要求该数组中第一个大于10000的元素。
a
(1)=1;a
(2)=1;i=2;whilea(i)=10000a(i+1)=a(i-1)+a(i);%当现有的元素仍小于10000时,求解下一个元素。
i=i+1;end;i,a(i),i=21ans=10946,2.6.2选择语句选择判断句的一般形式为:
Ifexpression()statements;elseexpression()statements;End例2.32B样条函数的判断函数。
functionf=pdbsline(x)ifx0f=0;elseifx1f=x;elseif
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 软件教程