1.1 MATLAB 软件介绍 ~(-1mB,
vH-|#x~
在欧美各高等学校,MATLAB 软件成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等诸多课程的基本教学工具,成为本科生、硕士生和博士生的必须掌握的基本技能。 kZo#Ny
{[`(o
0@(
主要用途: )">#bu$
(1)数值和符号计算; .ahY 1CO
(2)绘图; S.Kcb=;"L
(3)一种语言体系,也可以方便地与 Fortran、C 等语言接口; p`rjWpH
(4)工具箱(Toolbox),分为功能性和学科性两种类。同时,其工具箱的数据文件代码完全开发,用户也可以开发自己的工具箱。 (gPB@hAv
}yn%_KQ0
功能性工具箱主要用来扩充 MATLAB 软件的符号计算功能、图视建模仿真功能、文字处理功能以及硬件实时交互功能。这种功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如控制工具箱(Control Toolbox)、信号处理工具箱(Signal Processing Toolbox)、通信工具箱(Communication Toolbox)等都属此类。 YgjW%q
`GBJa k
MATLAB 语言的主要特点: Pv,PS.,-
(1)语法规则简单。与其他编程语言相比更接近于常规数学表达,对于数组变量的使用,不需类型声明,也无需事先申请内存空间。 E2dS@!]V
(2)提供了数以千计的计算函数,极大的提高了用户的编程效率。 A'7Y{oPHX
(3)是一种脚本式(scripted)的解释型语言,无论是命令、函数或变量,只要在命令窗口的提示符下键入并以回车键结束,则 MATLAB 都会予以解释执行。 BTj1C
(4)可移植性,可跨平台运行。MATLAB 软件可以运行在很多不同的计算机系统平台上,包括大部分的 UNIX 和 Linux 系统,其编写的程序对应的数据文件是一致的,绘图功能也与平台无关。 4[gbRn'
UJDI[`2
1.2 MATLAB 系统环境与数据操作 -6uLww=w4
Qj1%'wWG
1.2.1 系统路径设置 j DEym&-
Yc-5Mr8*,
两个路径概念: 87 B$
(1)当前目录窗口:指 MATLAB 运行时的工作目录。只有在当前目录和搜索路径下的文件、函数才可以被运行和调用;如果没有特殊指明,数据文件也将存放在当前目录下。 W{!5}Sh
(2)搜索路径:指 MATLAB 执行过程中对变量、函数和文件进行搜索的路径。 0vDvp`ie#4
搜索路径是使用 MATLAB 时一个很重要的概念,MATLAB 具有大量的工具箱,用户在使用时也会设置大量的用户文件夹和文件,怎样让 MATLAB 能够识别出这些文件在哪里,这就是搜索路径需要确定的内容。 +}(]7du
(注:MATLAB 启动后的默认目录是 C:\MATLAB\BIN 若不建子目录则MATLAB 环境产生的数据文件就登陆在这个缺省目录上。为了更加便于用户创建、修改 M 文件和其他文件,用户应建立自己的工作目录。) uEr.LCAS
键入字符识别的搜寻次序为: 4IB`7QJq
->>是否为变量 /Us+>vg!
->>是否为函数 `FNU-
I4s
->>是否为当前目录下的 M 文件 rfQs
7S;G
->>是否为搜索路径下其他 M 文件 Zn.S65J*u
f>mEX='w
系统路径设置方法 xJ:Am>%\^
(1)path 指令,可设置扩展(临时)搜索路径。例: !IC
.0I`
path(path, ‘C:\tools\mydir’) j!Ys/D
(2)cd 指令,可设置当前工作目录,该目录必须已存在。例: i>G:*?a
cd E:\MATLAB 1
rbc}e
(3)userpath 指令,可修改运行时默认路径。例: OEbZs-:
userpath(‘D:\MATLAB’) jL4"FTcE]3
(4)pathtool 指令,可直接更改、添加搜索路径。 F3Da-6T@
AlrUfSBB
1.2.2 变量 的基本表达 U'5p;j)_
j`3IizN2
变量命名规则:以英文字母开头,可包括英文字母、数字和下划线,区分大小写,最多可包含 63 个字符(6.5 及以后版本)。 ?&1%&?cg9
变量书写特点: l`0JL7
(1)无需声明 436SIh
(2)末尾有分号,只执行不输出 5HvYy
*B/
(3)回车符代表这句结束 Mwj7*pxUh
(4)一行写不开,可用…续行 +`m0i1uI3
(5)注释以%开头 =<=[E:B
RhjU^,%
变量赋值的两种常见方式: W"xRf0\V
->>变量=表达式,例: )OGO
wStz
s = 1-1/2+3 JvW!w)$pY
输出结果:s = 3.5000 e=u}J%|
->>表达式(赋值给默认变量 ans)
DshRH>7s8
2016/81 *q Ins/@
输出结果:ans = 24.8889 .M\0+,%/
IifH=%2Y
MATLAB 预定义的变量: zjx'nK{eI
(1)ans,最近表达式计算结果的变量名; qRZLv7X*j
(2)eps,预设正的极小值,其值为 2.2204e-16; gBd~:ZUa
(3)pi,圆周率 π; e=Kr>~q=
(4)inf,无穷大,∞值; 8ax3"G
(5)i 或 j,虚数单元,sqrt(-1); !un_JZD
(6)NaN,非数,0/0,∞/∞。 hN:2(x
注:用户只能临时覆盖这些预定义变量的值,Clear 或重启 MATLAB 可恢复其值。 TUO#6
v#KE"m
变量查询方法: =G<S!qW
(1)工作空间窗口显示; s0'Xih sw6
(2)who 和 whos 指令,列出在 MATLAB 工作空间中已经驻留的变量名清单。其中,whos 指令在给出变量名的同时,还给出它们的维数及性质。 }*0*8~Q'5
zd[cp@
清除变量方法: V6
,59
->>clear 清除所有变量 RD p(Ci
->>clear a 只清除变量 a Wv)2dD2I
!Lj+&D|z
变量保存与调用: t)~v5vr
命令 quit 和 exit 都可退出 MATLAB,结束工作任务会删除工作空间中的变量,可采用如下命令来保存工作空间,以备再次调用这些变量。 dCMWv~>
*YY:JLe
保存的指令格式: }vdhk0
(1)save,将工作空间中的所有变量保存到 matlab.mat 文件中。 %S4pkFR
(2)save [文件名] [变量名],将指定的变量保存在指定文件中。如: b$ )XS
save temp x y z enJE#4Z5&s
把 x,y,z 这三个变量保存在文件 temp.mat 中。 Z4 +6'
在下次加载 MATLAB 时,可以利用 load 指令将保存在文件中的变量恢复到工作空间中,其格式有: xQ=sZv^M
(1)load,将保存在 matlab.mat 中的变量载入到 MATLAB 工作空间中。 W5^m[,GU'
(2)load [文件名] [变量名],从指定的文件中将指定的变量装入 MATLAB工作间。如: jLRh/pbz4
load temp x $&Ntdn
只将 temp.mat 文件的变量 x 载入到 MATLAB 工作空间中。 eI7FbOze
=-e`OHA
1.2.3 数据、操作与显示 ?B"k9+%5ej
{T^"`%[
数字的计述: b!7*bFTt
MATLAB 的数值采用习惯的十进制表示,可以带小数点和负号,其缺省的数据类型为双精度浮点型(double)。例: x"9e eB,
3 -99 0.0013 1.243e-6 ueyz@{On~
表达式按常规相同的优先级从左至右执行运算,指数运算级别最高,乘除次之,加减最低。 1'[RrJ$Q
加+ 减- 乘* 左除\ 右除/ 幂^ F?wfh7q
注:对于标量而言,左除和右除的作用相同,但对矩阵运算产生不同的影响。 wMB. p2
NYoh6AR
在缺省的状态下 MATLAB 以短格式 short 格式显示计算结果。可以用MATLAB 命令窗口中 format 指令来改变数字的显示格式。由于 MATLAB 以双精度执行所有运算,显示格式的设置仅影响矩阵的显示,不影响矩阵的计算与存储。 wsnR$FhQ`
如果矩阵的所有元素都是整数,则矩阵以不带小数点的格式显示。如果有一个元素不是整数,则有几种输出格式。默认格式为 short格式,只显示 5 位有效数字,其他的显示格式可显示更多的有效数字,还可用科学表示法。 IezOal
->>format short e 短格式科学表示; PtUea
->>format short g 在 short 和 short e 中自动选择最佳方式; 78}QaE
->>format long 长格式(15 位有效数字); qW1d;pt
->>format long e 长格式科学表示; arR9uxP
->>format long g 在 long 和 long e 中自动选择最佳方式; L"|~,SVF
->>format bank 银行格式; %MQU&H9[
->>format rat 近似有理数表示; ;wi}6rF%[i
->>format hex 十六进制格式; H6Mqy}4W
->>format compact 紧凑格式。 h~]G6>D9)>
…… *v}8n95*2
o"te7nBI
字符串相关函数: "B~c/%#PH
class( )函数,可查看数据类型 4$);x/
a
double( )/abs( )函数,可将字符串转换成 ASCII 码 csceu+IA
str2num( )/num2str( )函数,实现字符串与数字之间的转换。 []'gIF
eval( )函数,执行字符串变量中的内容。 G% |$3
8
z) K
1.3 MATLAB 帮助/命令查询 eF[CiO8F2
ZPktZ
MATLAB 的在线帮助系统相当完备,就查询系统的调用方式而言,可分为两种: A{[joo
(1)从 MATLAB 指令窗的 help 菜单选项中寻求帮助此与一般 windows的求助方法一样 `UC
(2)在 MATLAB 指令窗中直接键入帮助指令。 $)1i)/]9U
->>help 不带任何参数,显示出 MATLAB 的目录项产生清单信息; "$->nC.
->>help 目录名(lang/ matfun/ elfun),显示指定目录中的所有命令及其函数; .^aakM
->>help 命令名/函数名/符号,显示指定的命令名/函数名/符号的详细信息。 |Va*=@&6J
lookfor 指令可以根据用户提供的完整或不完整的关键词,去搜索出一组与之有关的指令。 1G0U}-6RH
exist 指令,检查指定名字的变量或函数文件的存在性; L\cd=&b`
what 指令,按扩展名分类列出在搜索路径中指定目录上的文件名; [1-1^JY
which 指令,列出指定名字文件所在的目录。 toq/G,N Q
_2eRH@T
注:help 的工作机理是把指定名字的那个 M 文件的第一段注释内容显示出来,以构成自己文件的再线求助。lookfor 指令的机制是对 MATLAB 中的每个 M文件注释区的第一行进行扫描,一旦发现包含要查询的字符串就显示出来。用户也可利用此机理建立自己文件的在线帮助。 k`l={f8C
S>-x<'Os
1.4 MATLAB 的矩阵操作 |[/<[@\''
%h}Q f&U_
1.4.1 矩阵的建立 _JVFn=
E[:eMJR
(1)直接输入法 R&>G6jZ?8
->>在命令窗口直接输入矩阵元素; Lro[ |A
->>按行输入矩阵元素,同一行元素使用空格或者逗号隔开,不同行元素使用分号或者回车作为间隔。 eP d
03ol6y )C
(2)M 文件建立矩阵 aG"j9A~ &
->>启动编辑器(输入 edit 命令,或者使用菜单栏按钮); :%6OFO$z
->>输入待建立矩阵,输入格式要求和直接输入法类似。 (Dy6I;S
Ic 5TtN~/>
(3)zeros( )和 ones( )函数 3 291"0
bW]7$?acv
(4)冒号表达式建立向量 ~[_u@8l!mN
冒号是一个重要的运算符,语法: ;6 ?a8t@
e1:e2:e3 iS p +~
e1 为初始值,e2 为步长(默认为 1),e3 为终止值,产生行向量; k? <.yr1
?z
hw0
(5)linspace 建立行向量 ?/M:
语法: Oe)d|6=
linspace(a,b,n) `"(FWK=8)"
a 和 b 分别为行向量的第一个和最后一个元素,n 为总元素,省略 n 自动产生 100 个元素的行向量 Su]@~^w
\;!}z3W w
1.4.2 矩阵的简单操作 $U_M|Xa
x0KW\<k
(1)索引矩阵 fH@P&SX