matlabch1入门a.docx
- 文档编号:7110026
- 上传时间:2023-01-18
- 格式:DOCX
- 页数:51
- 大小:1.48MB
matlabch1入门a.docx
《matlabch1入门a.docx》由会员分享,可在线阅读,更多相关《matlabch1入门a.docx(51页珍藏版)》请在冰豆网上搜索。
matlabch1入门入门a第第1章章基础准备及入门基础准备及入门本章有三个目的:
一是讲述MATLAB正常运行所必须具备的基础条件;二是简明地介绍MATLAB及其操作桌面Desktop的基本使用方法;三是全面介绍MATLAB的帮助系统。
本章的前两节讲述:
MATLAB的正确安装方法和MATLAB环境的启动。
因为指令窗是MATLAB最重要的操作界面,所以本章用第1.3、1.4两节以最简单通俗的叙述、算例讲述指令窗的基本操作方法和规则。
这部分内容几乎对MATLAB各种版本都适用。
第1.5到第1.8节专门介绍MATLAB最常用的另五个交互界面:
历史指令窗、当前目录浏览器、工作空间浏览器、变量编辑器、M文件编辑器。
鉴于实际应用中,帮助信息和求助技能的重要性。
本章专设第1.9节专门叙述MATLAB的帮助体系和求助方法。
作者建议:
不管读者此前是否使用过MATLAB,都不要忽略本章。
.1MATLAB的安装和工具包选择的安装和工具包选择MATLAB只有在适当的外部环境中才能正常运行。
因此,恰当地配置外部系统是保证MATLAB运行良好的先决条件。
MATLAB本身可适应于许多机种和系统,如PC机和Unix工作站等。
但本节只针对我国使用最广的PC机系统给予介绍。
对PC机用户来说,常常需要自己安装MATLAB。
MATLABR2010a(即MATLAB7.10)版要求WinXP或WindowsVista平台。
下面介绍从光盘上安装MATLAB的方法。
一般说来,当MATLAB光盘插入光驱后,会自启动“安装向导”。
假如自启动没有实现,那么可以在或中双击setup.exe应用程序,使“安装向导”启动。
安装过程中出现的所有界面都是标准的,用户只要按照屏幕提示操作,如输入用户名、单位名、口令等就行。
在安装MATLAB.R2010a时,会出现一个界面,该界面上有两个选项:
Typical和Custom。
由于近年电脑的硬盘容量很大,所以一般用户为方便计,直接点选“Typical”即可。
安装完成后,一般会产生两个目录:
MATLAB软件所在的目录该目录位置及目录名,都是用户在安装过程中指定的。
比如,C:
MATLABR2010a。
该目录包含MATLAB运作所需的所有文件,如启动文件、各种工具包等。
MATLAB自动生成的供用户使用的工作目录该目录是由安装MATLAB时自动生成的,是专供用户存放操作MATLAB中产生的中间文件使用的。
该工作目录的名称是MATLAB。
它一般登录在C:
DocumentsandSettingsacerMyDocuments文件夹下。
(注意:
这文件夹名中的acer会随电脑不同而变。
)该工作目录C:
DocumentsandSettingsacerMyDocumentsMATLAB被自动记录在MATLAB的搜索路径中。
因此,在这目录上的M文件、MAT文件、MDL文件等都能被MATLAB搜索到。
.2Desktop操作桌面的启动操作桌面的启动.2.1MATLAB的启动的启动
(1)方法一当MATLAB安装到硬盘上以后,一般会在Windows桌面上自动生成MATLAB程序图标。
在这种情况下,只要直接点击那图标即可启动MATLAB,打开如图1.2-1的MATLAB操作桌面(Desktop)。
注意:
本书作者建议用户优先采用启动“方法一”。
(2)方法二假如Windows桌面上没有MATLAB图标,那么点击matlab文件夹下的快捷方式图标。
.2.2Desktop操作桌面简介操作桌面简介MATLABR2010a版的Desktop操作桌面,是一个高度集成的MATLAB工作界面。
其默认形式,如图1.2-1所示。
该桌面的上层铺放着三个最常用的界面:
指令窗(CommandWindow)、当前目录(CurrentDirectory)浏览器、MATLAB工作内存空间(Workspace)浏览器、历史指令(CommandHistory)窗。
图1.2-1Desktop操作桌面的默认外貌指令窗该窗是进行各种MATLAB操作的最主要窗口。
在该窗内,可键入各种送给MATLAB运作的指令、函数、表达式;显示除图形外的所有运算结果;运行错误时,给出相关的出错提示。
当前目录浏览器在该浏览器中,展示着子目录、M文件、MAT文件和MDL文件等。
对该界面上的M文件,可直接进行复制、编辑和运行;界面上的MAT数据文件,可直接送入MATLAB工作内存。
此外,对该界面上的子目录,可进行Windows平台的各种标准操作。
此外,在当前目录浏览器正下方,还有一个“文件概况窗”。
该窗显示所选文件的概况信息。
比如该窗会展示:
M函数文件的H1行内容,最基本的函数格式;所包含的内嵌函数和其它子函数。
工作空间浏览器该浏览器默认地位于当前目录浏览器的后台。
该窗口罗列出MATLAB工作空间中所有的变量名、大小、字节数;在该窗中,可对变量进行观察、图示、编辑、提取和保存。
历史指令窗该窗记录已经运作过的指令、函数、表达式,及它们运行的日期、时间。
该窗中的所有指令、文字都允许复制、重运行及用于产生M文件。
捷径(Start)键引出通往本MATLAB所包含的各种组件、模块库、图形用户界面、帮助分类目录、演示算例等的捷径,以及向用户提供自建快捷操作的环境。
.3CommandWindow运行入门运行入门MATLAB的使用方法和界面有多种形式。
但最基本的,也是入门时首先要掌握的是:
MATLAB指令窗(CommandWindow)的基本表现形态和操作方式。
本书作者相信,通过本节的文字解释,读者将对MATLAB使用方法有一个良好的初始感受。
.3.1CommandWindow指令窗简介指令窗简介MATLAB指令窗默认地位于MATLAB桌面的右方(见图1.2-1)。
假如,用户希望得到脱离操作桌面的几何独立指令窗,只要点击该指令窗右上角的键,就可获得如图1.3-1所示的指令窗。
图1.3-1几何独立的指令窗说明图1.3-1指令窗表现了例1.3-1运行的情况。
若用户希望让独立指令窗嵌放回桌面,则只要点击CommandWindow右上角的按钮,或选中指令窗菜单Desktop:
DockCommandWindow便可。
.3.2最简单的计算器使用法最简单的计算器使用法为易于学习,本节以算例方式叙述,并通过算例归纳一些MATLAB最基本的规则和语法结构。
建议读者,在深入学习之前,先读一读本节。
【例1.3-1】求的算术运算结果。
本例演示:
最初步的指令输入形式和必需的操作步骤。
(1)用键盘在MATLAB指令窗中输入以下内容(12+2*(7-4)/32
(2)在上述表达式输入完成后,按Enter键,该指令被执行,并显示如下结果。
ans=2说明本例在指令窗中实际运行的情况参见图1.3-1。
指令行“头首”的“”是“指令输入提示符”,它是自动生成的。
本书在此后的输入指令前将不再带提示符“”。
理由是:
(A)为使本书简洁;(B)本书用MATLAB的M-book写成,而在M-book中运行的指令前是没有提示符的。
MATLAB的运算符(如+、-等)都是各种计算程序中常见的习惯符号。
一条指令输入结束后,必须按Enter键,那指令才被执行。
由于本例输入指令是“不含赋值号的表达式”,所以计算结果被赋给MATLAB的一个默认变量“ans”。
它是英文“answer”的缩写。
【例1.3-2】“续行输入”法。
本例演示:
或由于指令太长,或出于某种需要,输入指令行必须多行书写时,该如何处理。
S=1-1/2+1/3-1/4+.1/5-1/6+1/7-1/8S=0.6345说明MATLAB用3个或3个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。
本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量S。
指令执行后,变量S被保存在MATLAB的工作空间(Workspace)中,以备后用。
如果用户不用clear指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中,直到本MATLAB指令窗被关闭为止。
.3.3数值、变量和表达式数值、变量和表达式前节算例只是表演了“计算器”功能,那仅是MATLAB全部功能中小小一角。
为深入学习MATLAB,有必要系统介绍一些基本规定。
本节先介绍关于变量的若干规定。
101数值的记述数值的记述MATLAB的数值采用习惯的十进制表示,可以带小数点或负号。
以下记述都合法。
3-990.0019.4561.3e-34.5e33在采用IEEE浮点算法的计算机上,数值通常采用“占用64位内存的双精度”表示。
其相对精度是eps(MATLAB的一个预定义变量),大约保持有效数字16位。
数值范围大致从到。
102变量命名规则变量命名规则变量名、函数名是对字母大小写敏感的。
如变量myvar和MyVar表示两个不同的变量。
sin是MATLAB定义的正弦函数名,但SIN,Sin等都不是。
变量名的第一个字符必须是英文字母,最多可包含63个字符(英文、数字和下连符)。
如myvar201是合法的变量名。
变量名中不得包含空格、标点、运算符,但可以包含下连符。
如变量名my_var_201是合法的,且读起来更方便。
而my,var201由于逗号的分隔,表示的就不是一个变量名。
103MATLAB默认的数学常数默认的数学常数MATLAB为一些数学常数(MathContants)预定义了变量名,见表1.3-1。
每当MATLAB启动,这些变量就被产生。
这些变量都有特殊含义和用途。
建议:
用户在编写指令和程序时,应尽可能不对表1.3-1所列预定义变量名重新赋值,以免产生混淆。
表1.3-1MATLAB为数学常数预定义的变量名预定义变量含义预定义变量含义eps浮点数相对精度NaN或nan不是一个数(NotaNumber),如0/0,i或j虚单元Inf或inf无穷大,如1/0pi圆周率intmax可表达的最大正整数,默认(2147483647)realmax最大正实数,默认1.7977e+308intmin可表达的最小负整数,默认(-2147483648)realmin最小正实数,默认2.2251e-308说明假如用户对表中任何一个预定义变量进行赋值,则那个变量的默认值将被用户新赋的值“临时”覆盖。
所谓“临时”是指:
假如使用clear指令清除MATLAB内存中的变量,或MATLAB指令窗被关闭后重新启动,那么所有的预定义变量将被重置为默认值,不管这些预定义变量曾被用户赋过什么值。
在遵循IEEE算法规则的机器上,被0除是允许的。
它不会导致程序执行的中断,只是在给出警告信息的同时,用一个特殊名称(如Inf,NaN)记述。
这个特殊名称将在以后的计算中以合理的形式发挥作用。
关于它们的更详细的帮助信息,可在MATLAB帮助浏览器左侧Contents页的找到。
【例1.3-3】运用以下指令,以便初步了解关于常数的预定义变量。
本例演示:
各常数的含义。
formatshorteRMAd=realmax(double)%双精度类型(默认)时最大实数RMAs=realmax(single)%单精度类型时最大实数RMAd=1.7977e+308RMAs=3.4028e+038IMA64=intmax(int64)%int64整数类型时最大正整数IMA32=intmax%int32(默认)整数类型时最大正整数IMA32=intmax(int16)%int16整数类型时最大正整数IMA64=9223372036854775807IMA32=2147483647IMA32=32767e1=eps%双精度类型时的相对精度e2=eps
(2)%表达2时的绝对精度e1=2.220446049250313e-016e2=4.440892098500626e-016pians=3.141592653589793104运算符和表达式运算符和表达式
(1)经典教科书上的算术运算符(ArithmeticOperations)在MATLAB中的表达方式,见表1.3-2。
表1.3-2MATLAB表达式的基本运算符数学表达式矩阵运算符数组运算符加a+ba+b减a-ba-b乘a*ba.*b除a/b或baa./b或b.a幂aba.b圆括号()()()说明因为MATLAB面向复数设计,其所有运算定义在复数域上。
所以对于方根问题,运算只返还一个“主解”。
要得复数的全部方根,必须专门编写程序(见例1.3-6)。
因为MATLAB面向矩阵/数组设计,标量被看作的矩阵/数组。
数组运算的“乘、除、幂”规则与相应矩阵运算根本不同。
前者的算符比后者多一个“小黑点”。
(参见例1.3-9,例1.3-10。
更详细说明请看第3章)MATLAB用左斜杠或右斜杠分别表示“左除”或“右除”运算。
对标量而言,“左除”和“右除”的作用结果相同。
但对矩阵来说,“左除”和“右除”将产生不同的结果。
关于它们的更详细的帮助信息,可在MATLAB帮助浏览器左侧Contents页的节点找到。
关于它们的帮助信息,也可在MATLAB帮助浏览器左上方的搜索栏中输入ArithmeticOperations,经搜索获得。
(2)MATLAB书写表达式的规则与“手写算式”几乎完全相同。
表达式由变量名、运算符和函数名组成。
表达式将按与常规相同的优先级自左至右执行运算。
优先级的规定是:
指数运算级别最高,乘除运算次之,加减运算级别最低。
括号可以改变运算的次序。
书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。
105面向复数设计的运算面向复数设计的运算MATLAB特点之一特点之一MATLAB的所有运算都是定义在复数域上的。
这样设计的好处是:
在进行运算时,不必像其他程序语言那样把实部、虚部分开处理。
为描述复数,虚数单位用预定义变量i或j表示。
复数直角坐标表示和极坐标表示之间转换的MATLAB指令如下。
real(z)给出复数的实部。
imag(z)给出复数的虚部。
abs(z)给出复数的模。
angle(z)以弧度为单位给出复数的幅角。
【例1.3-4】复数表达,及计算。
本例演示:
正确的复数输入法;涉及复数表示方式的基本指令。
(1)经典教科书的直角坐标表示法z1=4+3i%合法,但建议少用或不用z1=4+3i说明本书建议读者不要使用这种输入格式。
因为这种书写格式,只适用于“数值标量”复数,而不适用于“数值矩阵”。
在这种书写格式中,4i是一个完整的虚数,在4和i之间不许“空格”存在。
(2)采用运算符构成的直角坐标表示法和极坐标表示法z2=1+2*i%运算符构成的直角坐标表示法z3=2*exp(i*pi/6)%运算符构成的极坐标表示法z=z1*z2/z3z2=1+2iz3=1.7321+1iz=1.884+5.2631i(3)复数的实虚部、模和幅角计算real_z=real(z)image_z=imag(z)magnitude_z=abs(z)angle_z_radian=angle(z)%弧度单位angle_z_degree=angle(z)*180/pi%度数单位real_z=1.884image_z=5.2631magnitude_z=5.5902angle_z_radian=1.2271angle_z_degree=70.305【例1.3-5】图示复数的和(配图1.3-2)。
本例演示:
MATLAB的运算在复数域上进行;指令后“分号”的作用;复数加法的几何意义;展示MATLAB的可视化能力(让读者感受,但不要求理解)。
z1=4+3*i;z2=1+2*i;%在一个物理行中,允许输入多条指令。
%但各指令间要用“分号”或“逗号”分开。
%指令后采用“分号”,使运算结果不显示。
z12=z1+z2%以下用于绘图clf,holdon%clf清空图形窗。
逗号用来分隔两个指令。
plot(0,z1,z12,-b,LineWidth,3)plot(0,z12,-r,LineWidth,3)plot(z1,z12,ob,MarkerSize,8)holdoff,gridon,axisequalaxis(0,6,0,6)text(3.5,2.3,z1)text(5,4.5,z2)text(2.5,3.5,z12)xlabel(real)ylabel(image)z12=5.0000+5.0000i图1.3-2两个复数相加【例1.3-6】用MATLAB计算能得到2吗(配图1.3-3)?
本例演示:
MATLAB运算定义在复数域的实质;指令后“分号”抑制运算结果的显示;MATLAB的方根运算规则;更复杂指令的表示方式;展现MATLAB的图形表现力。
(对于本例指令,读者能有体验就可,不必强求理解。
)
(1)直接计算时,得到处于第一象限的方根。
a=-8;r_a=a(1/3)%求3次根r_a=1.0000+1.7321i01234560123456z1z2z12realimage
(2)的全部方根计算如下%先构造一个多项式p=1,0,0,-a;%p是多项式的系数向量%指令末尾的“英文状态分号”使该指令运行后,不显示结果。
R=roots(p)%求多项式的根R=-2.00001.0000+1.7321i1.0000-1.7321i(3)图形表示MR=abs(R
(1);%计算复根的模t=0:
pi/20:
2*pi;%产生参变量在0到2*pi间的一组采样点x=MR*sin(t);y=MR*cos(t);plot(x,y,b:
),gridon%画一个半径为R的圆%注意“英文状态逗号”在不同位置的作用holdonplot(R
(2),.,MarkerSize,30,Color,r)%画第一象限的方根plot(R(1,3),o,MarkerSize,15,Color,b)%画另两个方根axis(-3,3,-3,3),axissquare%保证屏幕显示呈真圆holdoff图1.3-3(-8)的全部三次方根分布说明本例有助于理解MATLAB的计算特点。
对复数进行方根运算时,MATLAB只给出处于“第一象限”的那个根。
106面向数组设计的运算面向数组设计的运算MATLAB特点之二特点之二在MATLAB中,标量数据被看作的数组(Array)数据。
所有的数据都被存放在适当大小的数组中。
为加快计算速度(运算的向量化处理),MATLAB对以数组形式存储的数据设计了两种基本运算:
一种是所谓的数组运算;另一种是所谓的矩阵运算。
在此仅以算例展示MATLAB的计算特点,更详细的叙述请见第3章。
【例1.3-7】实数数组的“一行”输入法。
本例演示:
二维数组的最基本、最常用输入法;二维数组输入的三大要素。
(1)在键盘上输入下列内容AR=1,3;2,4
(2)按Enter键,指令被执行。
-3-2-10123-3-2-10123(3)在指令执行后,MATLAB指令窗中将显示以下结果:
AR=1324说明在MATLAB中,不必事先对数组维数及大小做任何说明,内存将自动配置。
二维数组输入的三大要素:
数组标识符“”;元素分隔符空格或逗号“,”;数组行间分隔符分号“;”或“回车键”。
注意:
所有标点符号都是“英文状态的符号”。
MATLAB对字母大小写是敏感的。
比如本例中的数组赋给了变量AR,而不是Ar,aR,或ar。
在全部键入一个指令行内容后,必须按下Enter键,该指令才会被执行。
请读者务必记住此点。
出于叙述简明的考虑,本书此后将不再重复提及此操作。
【例1.3-8】实数数组的“分行”输入法。
AI=5,76,8AI=5768说明本例采用这种输入法是为了视觉习惯。
当然,对于较大的数组也可采用此法。
在这种输入方法中,“回车”符用来分隔数组中的行。
【例1.3-9】对复数数组进行求实部、虚部、模和幅角的运算。
本例演示:
复数数组的生成;MATLAB指令对数组元素“并行操作”的实质。
(1)创建复数数组AR=1,3;2,4;AI=5,7;6,8;A=AR-AI*i%形成复数矩阵A=1.0000-5.0000i3.0000-7.0000i2.0000-6.0000i4.0000-8.0000i
(2)求复数数组的实部和虚部A_real=real(A)A_image=imag(A)A_real=1324A_image=-5-7-6-8(3)求复数数组中各元素的模和幅角循环法(笨拙!
)form=1:
2forn=1:
2Am1(m,n)=abs(A(m,n);Aa1(m,n)=angle(A(m,n)*180/pi;%以度为单位计算幅角endendAm1,Aa1Am1=5.09907.61586.32468.9443Aa1=-78.6901-66.8014-71.5651-63.4349(4)求复数数组中各元素的模和幅角直接法Am2=abs(A)Aa2=angle(A)*180/piAm2=5.09907.61586.32468.9443Aa2=-78.6901-66.8014-71.5651-63.4349说明函数real,imag,abs,angle是同时、并行地作用于数组的每个元素。
对4个元素运算所需的时间大致与对单个元素所需时间相同。
这有利于运算速度的提高。
这是“向量化”运算的一种形式。
本例给出了循环法求各元素模和幅角的指令。
这是很不有效的计算方法。
对于MATLAB以外的许多编程语言来说,可能不得不采用“循环”处理方式来解本例。
记住:
对于MATLAB来说,应该尽量摒弃“循环”处理,而采用“向量化”处理方式。
【例1.3-10】画出衰减振荡曲线,的取值范围是(配图1.3-4)。
本例演示:
展示数组运算的优点;展示MATLAB的可视化能力。
t=0:
pi/50:
4*pi;%定义自变量t的取值数组y=exp(-t/3).*sin(3*t);%计算与自变量相应的y数组。
注意:
乘法符前面的小黑点。
plot(t,y,-r,LineWidth,2)%绘制曲线axis(0,4*pi,-1,1)xlabel(t),ylabel(y)图1.3-4衰减振荡曲线说明本例第二条指令中的“.*”符号表示乘法是在两个数组相同位置上的元素间进行的。
本书把这种乘法称为“数组乘”。
数组乘的引入,不但使得程序简洁自然,而且避免了耗费机时的“循环计算”。
关于数组运算的详细叙述请见第3章。
本例第二条指令是典型的“向量化”处理形式。
本书作者建议读者,只要可能,应尽量采用“向量化”运算形式。
【例1.3-11】复数矩阵的生成,及计算矩阵乘积(A取自算例1.3-9)。
本例演示:
MATLAB矩阵运算指令的简捷性。
B=3+2i,2+6i;5+3*i,4-2*i%复数数组的又一种输入方式%注意标点符号的作用C=A*B%矩阵乘法B=3.0000+2.0000i2.0000+6.0000i5.0000+3.0000i4.0000-2.0000iC=024681012-1-0.8-0.6-0.4-0.200.20.40.60.81ty49.0000-39.0000i30.0000-38.0000i62.0000-42.0000i40.0000-40.0000i说明当数组被赋予“变换”属性时,二维数组就被称为矩阵。
只有当两个矩阵的“内维大小相等”时,矩阵乘法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlabch1 入门
![提示](https://static.bdocx.com/images/bang_tan.gif)