第1章 基础准备及入门
本章有三个目的:一是讲述 MATLAB 正常运行所必须具备的基础条件;二是简明地介
绍 MATLAB 及其操作桌面 Desktop 的基本使用方法;三是全面介绍 MATLAB 的帮助系统。
本章的前两节讲述:MATLAB 的正确安装方法和 MATLAB 环境的启动。因为指令窗
是 MATLAB 最重要的操作界面,所以本章用第 1.3、1.4 两节以最简单通俗的叙述、算例
讲述指令窗的基本操作方法和规则。这部分内容几乎对 MATLAB 各种版本都适用。第 1.5
到第 1.8 节专门介绍 MATLAB 最常用的另五个交互界面:历史指令窗、当前目录浏览器、
工作空间浏览器、数组编辑器、M 文件编辑器。 鉴于实际应用中,帮助信息和求助技能的
重要性。本章专设第 1.9 节专门叙述 MATLAB 的帮助体系和求助方法。
作者建议:不管读者此前是否使用过 MATLAB,都不要忽略本章。
1.1
MATLAB 的安装和工具包选择
MATLAB 只有在适当的外部环境中才能正常运行。因此,恰当地配置外部系统是保证
MATLAB 运行良好的先决条件。MATLAB 本身可适应于许多机种和系统,如 PC 机 和 Unix
工作站等。但本节只针对我国使用最广的 PC 机系统给予介绍。
对 PC 机用户来说,常常需要自己安装 MATLAB。MATLAB R2006a (即旧编号
MATLAB7.2)版要求 Win2000 或 WinXP 平台。下面介绍从光盘上安装 MATLAB 的方法。
(1) 一般说来,当 MATLAB 光盘插入光驱后,会自启动“安装向导”。假如自启动没有
实现,那么可以在<我的电脑>或<资源管理器>中双击 setup.exe 应用程序,使“安装
向导”启动。安装过程中出现的所有界面都是标准的,用户只要按照屏幕提示操作,
如输入用户名、单位名、口令等就行。
(2) 在安装 MATLAB.R2006a 时,会出现一个界面,该界面上有两个选项:Typical 和
Custom。假如你不熟悉 MATLAB,或假如你机器的硬盘的自由空间远大于 3G,或
假如你需要用到光盘上 MATLAB 的所有功能及工具包,那么你就点选“Typical”。
否则,点选“Custom”。
(3) 在点选“Custom”后,会引出如图 1.1-1 的界面。你可以根据需要,在“Select products
to install”栏中勾选相应的组件。注意:MATLAB 软件光盘总包含很多工具包,它
们有的是通用的,有的则专业性很强。对一般用户来说,完全不必采取全部安装,
而应根据需要有所选择。否则将占据很多硬盘空间。表 1.1-1 对各组件的描述供用户
选择时参考。
1
组 件 名 称
1.必须选择的本原性组件
MATLAB
2.最常选的通用性工具包组件
Symbolic Math Toolbox
Extended Symbolic Math Toolbox
3.其他通用性工具包组件
Simulink
Optimization Toolbox
Matlab Compiler
Matlab builder for Excel
4.常用专业性工具包组件
Control System Toolbox
Signal Processing Toolbox
Spline Toolbox
Statistics Toolbox
5.其他专业性工具包组件(举例)
Stateflow
图 1.1-1 MATLAB 组件选择界面
表 1.1-1 MATLAB 各组件的功用
功 用
这是最核心的部分。没有它就没有 MATLAB 环境。
有了它,就可以对各类数据(除符号类数据以外)
进行操作、运算和可视化。
符号类数据的操作和计算。
更丰富的符号计算函数和指令
不用编写程序,利用方块图实现建模和仿真;主要
用于研究微分和差分方程描写的非线性动态系统。
包含求函数零点、极值、规划等优化程序。
把 MATLAB 的 M 文件编译成独立应用程序。
与 MATLAB Compiler 配合使用,生成 Excel 插件。
MATLAB 涉及控制的工具包有 10 多个,而本栏工具
包是最基本的,是解决控制问题所必选的。至于其
他控制工具包则是用户根据需要选择的。
是 MATLAB 信号处理中的基本工具包。
内含样条和插值函数。
包含进行复杂统计分析所需的程序。
与 Simulink 配合使用,主要用于较大型、复杂的(离
散事件)动态系统的建模、分析、仿真。
2
System Identification Toolbox
......
动态系统辨识。
1.2
1.2.1
Desktop 操作桌面的启动
MATLAB的启动
(1)方法一
当 MATLAB 安装到硬盘上以后,一般会在 Windows 桌面上自动生成 MATLAB 程序图
标。在这种情况下,只要直接点击那图标即可启动 MATLAB,打开如图 1.2-1 的 MATLAB
操作桌面(Desktop)。注意:本书作者建议用户优先采用启动“方法一”。
(2)方法二
假如 Windows 桌面上没有 MATLAB 图标,那么点击 matlab\ 文件夹下的快捷方式图标
。
(3)方法三
点击 matlab\bin\win32 文件夹中的 matlab.exe(它的图标是
),也会自动创建类
似图 1.2-1 所示的 Desktop 操作桌面。唯一的区别是:采用这种方式创建的 MATLAB 工作环
境以 MATLAB 所在的根目录为当前目录。
1.2.2
Desktop操作桌面简介
MATLAB R2006a 版的 Desktop 操作桌面,是一个高度集成的 MATLAB 工作界面。其
默认形式,如图 1.2-1 所示。该桌面的上层铺放着三个最常用的界面:指令窗(Command
Window)、当前目录(Current Directory)浏览器、历史指令(Command History)窗。在当
前目录窗的下面还铺放一个 MATLAB 内存工作空间(Workspace)浏览器。
3
指令窗
图 1.2-1 Desktop 操作桌面的默认外貌
该窗是进行各种 MATLAB 操作的最主要窗口。在该窗内,可键入各种送给
MATLAB 运作的指令、函数、表达式;显示除图形外的所有运算结果;运行错误时,
给出相关的出错提示。
历史指令窗
该窗记录已经运作过的指令、函数、表达式,及它们运行的日期、时间。该窗中的
所有指令、文字都允许复制、重运行及用于产生 M 文件。
当前目录浏览器
在该浏览器中,展示着子目录、M 文件、MAT 文件和 MDL 文件等。对该界面上
的 M 文件,可直接进行复制、编辑和运行;界面上的 MAT 数据文件,可直接送入
MATLAB 工作内存。此外,对该界面上的子目录,可进行 Windows 平台的各种标准操
作。
工作空间浏览器
该浏览器默认地位于当前目录浏览器的后台。该窗口罗列出 MATLAB 工作空间中
所有的变量名、大小、字节数;在该窗中,可对变量进行观察、图示、编辑、提取和保
存。
捷径(Start)键
引出通往本 MATLAB 所包含的各种组件、模块库、图形用户界面、帮助分类目录、
演示算例等的捷径,以及向用户提供自建快捷操作的环境。
1.3
Command Window 运行入门
MATLAB 的使用方法和界面有多种形式。但最基本的,也是入门时首先要掌握的是:
MATLAB 指令窗(Command Window)的基本表现形态和操作方式。本书作者相信,通过
4
本节的文字解释,读者将对 MATLAB 使用方法有一个良好的初始感受。
1.3.1
Command Window指令窗简介
MATLAB 指令窗默认地位于 MATLAB 桌面的右方(见图 1.2-1)。假如,用户希望得到
脱离操作桌面的几何独立指令窗,只要点击该指令窗右上角的 键,就可获得如图 1.3-1
所示的指令窗。
图 1.3-1 几何独立的指令窗
〖说明〗
图 1.3-1 指令窗表现了例 1.3-1 运行的情况。
若用户希望让独立指令窗嵌放回桌面,则只要点击 Command Window 右上角的 按钮,
或选中指令窗菜单 {Desktop:Dock Command Window} 便可。
1.3.2
最简单的计算器使用法
为易于学习,本节以算例方式叙述,并通过算例归纳一些 MATLAB 最基本的规则和语
法结构。建议读者,在深入学习之前,先读一读本节。
【例 1.3-1】求
12[
)]47(2
23
的算术运算结果。本例演示:最初步的指令输入形式
和必需的操作步骤。
(1)用键盘在 MATLAB 指令窗中输入以下内容
>> (12+2*(7-4))/3^2
(2)在上述表达式输入完成后,按 [Enter] 键,该指令被执行,并显示如下结果。
ans =
2
〖说明〗
本例在指令窗中实际运行的情况参见图 1.3-1。
指令行“头首”的“ >>”是“指令输入提示符”,它是自动生成的。本书在此后的输
入指令前将不再带提示符“ >>”。理由是:(A)为使本书简洁;(B)本书用 MATLAB
的 M-book 写成,而在 M-book 中运行的指令前是没有提示符的。
5
MATLAB 的运算符(如+、- 等)都是各种计算程序中常见的习惯符号。
一条指令输入结束后,必须按 [Enter] 键,那指令才被执行。
由于本例输入指令是“不含赋值号的表达式”,所以计算结果被赋给 MATLAB 的一个
默认变量“ans”。它是英文“answer”的缩写。
【例 1.3-2】“续行输入”法。本例演示:或由于指令太长,或出于某种需要,输入指令行必
须多行书写时,该如何处理。
S=1-1/2+1/3-1/4+ ...
1/5-1/6+1/7-1/8
S =
0.6345
〖说明〗
MATLAB 用 3 个或 3 个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。
本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量 S。
指令执行后,变量 S 被保存在 MATLAB 的工作空间(Workspace)中,以备后用。如
果用户不用 clear 指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中,
直到本 MATLAB 指令窗被关闭为止。
1.3.3
数值、变量和表达式
前节算例只是表演了“计算器”功能,那仅是 MATLAB 全部功能中小小一角。为深入
学习 MATLAB,有必要系统介绍一些基本规定。本节先介绍关于变量的若干规定。
一
数值的记述
-99
MATLAB 的数值采用习惯的十进制表示,可以带小数点或负号。以下记述都合法。
3
在采用 IEEE 浮点算法的计算机上,数值通常采用“占用 64 位内存的双精度”表示。
其相对精度是 eps (MATLAB 的一个预定义变量),大约保持有效数字 16 位。数值范围大
4.5e33
0.001
1.3e-3
9.456
致从
308
10
到
308
10 。
二
变量命名规则
变量名、函数名是对字母大小写敏感的。如变量 myvar 和 MyVar 表示两个不同的变量。
sin 是 MATLAB 定义的正弦函数名,但 SIN,Sin 等都不是。
变量名的第一个字符必须是英文字母,最多可包含 63 个字符(英文、数字和下连符)。
如 myvar201 是合法的变量名。
变量名中不得包含空格、标点、运算符,但可以包含下连符。如变量名 my_var_201 是
合法的,且读起来更方便。而 my,var201 由于逗号的分隔,表示的就不是一个变量名。
6
三
MATLAB 默认的预定义变量
在 MATLAB 中有一些所谓的预定义变量(Predefined Variable ),见表 1.3-1。每当
MATLAB 启动,这些变量就被产生。这些变量都有特殊含义和用途。建议:用户在编写指
令和程序时,应尽可能不对表 1.3-1 所列预定义变量名重新赋值,以免产生混淆。
预定义变量
表 1.3-1 MATLAB 中最常用的预定义变量
含 义
预定义变量
含 义
ans
eps
计算结果的默认变量名
机器零阈值
Inf 或 inf 无穷大,如 1/0
i 或 j
1 j
虚单元
i
pi
圆周率
NaN 或 nan 不是一个数(Not a Number),
nargin
nargout
realmax
realmin
如 0/0, /
函数输入宗量数目
函数输出宗量数目
最大正实数
最小正实数
〖说明〗
假如用户对表中任何一个预定义变量中进行赋值,则那个变量的默认值将被用户新赋的
值“临时”覆盖。所谓“临时”是指:假如使用 clear 指令清除 MATLAB 内存中的变
量,或 MATLAB 指令窗被关闭后重新启动,那么所有的预定义变量将被重置为默认值,
不管这些预定义变量曾被用户赋过什么值。
在遵循 IEEE 算法规则的机器上,被 0 除是允许的。它不会导致程序执行的中断,只
是在给出警告信息的同时,用一个特殊名称(如 Inf,NaN)记述。这个特殊名称将在
以后的计算中以合理的形式发挥作用。
【例 1.3-3】运用以下指令,以便初步了解预定义变量。本例演示:预定义变量已经存在的
事实;若干预定义变量的数量级概念。
format long
realmax
ans =
1.797693134862316e+308
realmin
ans =
2.225073858507201e-308
eps
ans =
2.220446049250313e-016
pi
ans =
3.14159265358979
7
四
运算符和表达式
(1)经典教科书上的算术运算符在 MATLAB 中的表达方式,见表 1.3-2。
加
减
乘
除
幂
圆括号
表 1.3-2 MATLAB 表达式的基本运算符
数学表达式
矩阵运算符
数组运算符
ba
ba
ba
ba
ba
( )
a + b
a - b
a * b
a + b
a - b
a .* b
a / b 或 b \ a
a ./ b 或 b .\ a
a ^ b
( )
a .^ b
( )
〖说明〗
因为 MATLAB 面向复数设计,其所有运算定义在复数域上。所以对于方根问题,运算
只返还一个“主解”。要得复数的全部方根,必须专门编写程序(见例 1.3-6)。
因为 MATLAB 面向矩阵/数组设计,标量被看作
)11( 的矩阵/数组。
数组运算的“乘、除、幂”规则与相应矩阵运算根本不同。前者的算符比后者多一个“小
黑点”。(参见例 1.3-9,例 1.3-10。更详细说明请看第 3 章)
MATLAB 用左斜杠或右斜杠分别表示“左除”或“右除”运算。对标量而言,“左除”
和“右除”的作用结果相同。但对矩阵来说,“左除”和“右除”将产生不同的结果。
(2)MATLAB 书写表达式的规则与“手写算式”几乎完全相同。
表达式由变量名、运算符和函数名组成。
表达式将按与常规相同的优先级自左至右执行运算。
优先级的规定是:指数运算级别最高,乘除运算次之,加减运算级别最低。
括号可以改变运算的次序。
书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。
五
面向复数设计的运算——MATLAB 特点之一
MATLAB 的所有运算都是定义在复数域上的。这样设计的好处是:在进行运算时,不
必像其他程序语言那样把实部、虚部分开处理。为描述复数,虚数单位用预定义变量 i 或 j
表示。
复数
bi
直角坐标表示和极坐标表示之间转换的 MATLAB 指令如下。
a
ire
z
给出复数 z 的实部
给出复数 z 的虚部
real(z)
imag(z)
a
b
r
cos
sinr
。
。
abs(z)
给出复数 z 的模
a 。
2
b
2
angle(z) 以弧度为单位给出复数 z 的幅角
arctan 。
b
a
8