第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。MATLABR2010a(即MATLAB7.10) 版要求VinXP或Windows Vista平台。下面介绍从光盘上安装MATLAB的方法。 一般说来,当MATLAB光盘插入光驱后,会自启动“安装向导”。假如自启动没有实 现,那么可以在或中双击setup.exe应用程序,使“安装向导”启 动。安装过程中出现的所有界面都是标准的,用户只要按照屏幕提示操作,如输入用户名、 单位名、口令等就行。 在安装MATLAB.R201Oa时,会出现一个界面,该界面上有两个选项:Typical和Custom。 由于近年电脑的硬盘容量很大,所以一般用户为方便计,直接点选“Typical”即可。 安装完成后,一般会产生两个目录: ● MATLAB软件所在的目录 ■该目录位置及目录名,都是用户在安装过程中指定的。比如,C:MATLAB R20I0a。 ■该目录包含MATLAB运作所需的所有文件,如启动文件、各种工具包等。 ● MATLAB自动生成的供用户使用的工作目录 ■该目录是由安装MATLAB时自动生成的,是专供用户存放操作MATLAB中产生 的中间文件使用的。 ■该工作目录的名称是MATLAB。它一般登录在C:.Documents and Settings\acer\My Documents文件夹下。(注意:这文件夹名中的acer会随电脑不同而变。) 该工作目录C.Documents and Settings\acer\My Documents\MATLAB被自动记录在 MATLAB的搜索路径中。因此,在这目录上的M文件、MAT文件、MDL文件等 都能被MATLAB搜索到。 1.2 Desktop操作桌面的启动 1.2.1 MATLAB的启动 (1)方法一 当MATLAB安装到硬盘上以后,一般会在Windows桌面上自动生成MATLAB程序图 标。在这种情况下,只要直接点击那图标即可启动MATLAB,打开如图1.2-1的MATLAB 操作桌面(Desktop)。注意:本书作者建议用户优先采用启动“方法一
1 第 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 R2010a (即 MATLAB 7.10) 版要求 WinXP 或 Windows Vista 平台。下面介绍从光盘上安装 MATLAB 的方法。 一般说来,当 MATLAB 光盘插入光驱后,会自启动“安装向导”。假如自启动没有实 现,那么可以在或中双击 setup.exe 应用程序,使“安装向导”启 动。安装过程中出现的所有界面都是标准的,用户只要按照屏幕提示操作,如输入用户名、 单位名、口令等就行。 在安装 MATLAB.R2010a 时,会出现一个界面,该界面上有两个选项:Typical 和 Custom。 由于近年电脑的硬盘容量很大,所以一般用户为方便计,直接点选“Typical”即可。 安装完成后,一般会产生两个目录: MATLAB 软件所在的目录 该目录位置及目录名,都是用户在安装过程中指定的。比如,C:\MATLAB R2010a。 该目录包含 MATLAB 运作所需的所有文件,如启动文件、各种工具包等。 MATLAB 自动生成的供用户使用的工作目录 该目录是由安装 MATLAB 时自动生成的,是专供用户存放操作 MATLAB 中产生 的中间文件使用的。 该工作目录的名称是 MATLAB。它一般登录在 C:\Documents and Settings\acer\My Documents 文件夹下。(注意:这文件夹名中的 acer 会随电脑不同而变。) 该工作目录 C:\Documents and Settings\acer\My Documents\MATLAB 被自动记录在 MATLAB 的搜索路径中。因此,在这目录上的 M 文件、MAT 文件、MDL 文件等 都能被 MATLAB 搜索到。 1.2 Desktop 操作桌面的启动 1.2.1 MATLAB 的启动 (1)方法一 当 MATLAB 安装到硬盘上以后,一般会在 Windows 桌面上自动生成 MATLAB 程序图 标。在这种情况下,只要直接点击那图标即可启动 MATLAB,打开如图 1.2-1 的 MATLAB 操作桌面(Desktop)。注意:本书作者建议用户优先采用启动“方法一
(2)方法二 假如Windows桌面上没有MATLAB图标,那么点击matlab\文件夹下的快捷方式图标 AMATLAB 1.2.2 Desktop操作桌面简介 MATLAB R201Oa版的Desktop操作桌面,是一个高度集成的MATLAB工作界面。其 默认形式,如图l.2-1所示。该桌面的上层铺放着三个最常用的界面:指令窗(Command Window)、当前目录(Current Directory)浏览器、MATLAB工作内存空间(Workspace) 浏览器、历史指令(Command History)窗。 SIMULINK 图形用户接口 文件 MATLAB 当前目录显示窗 目录浏览器 库及模块浏览器 创健器 性能剖析器 帮助浏览器 ATLAB 7.10.0 (R2010a) ▣x Eile Edit View Debug Parallel Desktop Mindow Help C:\MATLAB R2010a\toolbox' Shortcuts How to Add What's ITew Current Folder口aX Comman... +1▣7X Workspace +1▣3X 中中 白c.. 》 ④Iew to MATLAR饣Watc:X 画国阿④s. 2》 >》 Iame△ Value ☒1 tiprops.m ltiview.m 1yap.m 1yapchol.m Command H. +1☐aX Itiviewm(MATLAB Function) ww=i5sC120b,G1,✉ Opens tha LII Viewer GI sile(ww) ltiview(varargin) 白%-- 10-3-27 上午11: ]LocalStar\UpMsgBox ( LocalCallWihExtras... Start 捷径键 当前目录浏览器 文艾件况窗 指令窗 综合信息条 工作内存浏览器 历史指令窗 图1.2-1 Desktop操作桌面的默认外貌 ●指令窗 该窗是进行各种MATLAB操作的最主要窗口。在该窗内,可键入各种送给 MATLAB运作的指令、函数、表达式:显示除图形外的所有运算结果:运行错误时, 给出相关的出错提示。 当前目录浏览器 在该浏览器中,展示着子目录、M文件、MAT文件和MDL文件等。对该界面上 的M文件,可直接进行复制、编辑和运行:界面上的MAT数据文件,可直接送入 MATLAB工作内存。此外,对该界面上的子目录,可进行Windows平台的各种标准操 作。 此外,在当前目录浏览器正下方,还有一个“文件概况窗”。该窗显示所选文件的 概况信息。比如该窗会展示:M函数文件的H1行内容,最基本的函数格式:所包含的 内嵌函数和其它子函数。 工作空间浏览器 该浏览器默认地位于当前目录浏览器的后台。该窗口罗列出MATLAB工作空间中 2
2 (2)方法二 假如 Windows 桌面上没有 MATLAB 图标,那么点击 matlab\ 文件夹下的快捷方式图标 。 1.2.2 Desktop 操作桌面简介 MATLAB R2010a 版的 Desktop 操作桌面,是一个高度集成的 MATLAB 工作界面。其 默认形式,如图 1.2-1 所示。该桌面的上层铺放着三个最常用的界面:指令窗(Command Window)、当前目录(Current Directory)浏览器、MATLAB 工作内存空间(Workspace) 浏览器、历史指令(Command History)窗。 图 1.2-1 Desktop 操作桌面的默认外貌 指令窗 该窗是进行各种 MATLAB 操作的最主要窗口。在该窗内,可键入各种送给 MATLAB 运作的指令、函数、表达式;显示除图形外的所有运算结果;运行错误时, 给出相关的出错提示。 当前目录浏览器 在该浏览器中,展示着子目录、M 文件、MAT 文件和 MDL 文件等。对该界面上 的 M 文件,可直接进行复制、编辑和运行;界面上的 MAT 数据文件,可直接送入 MATLAB 工作内存。此外,对该界面上的子目录,可进行 Windows 平台的各种标准操 作。 此外,在当前目录浏览器正下方,还有一个“文件概况窗”。该窗显示所选文件的 概况信息。比如该窗会展示:M 函数文件的 H1 行内容,最基本的函数格式;所包含的 内嵌函数和其它子函数。 工作空间浏览器 该浏览器默认地位于当前目录浏览器的后台。该窗口罗列出 MATLAB 工作空间中
所有的变量名、大小、字节数:在该窗中,可对变量进行观察、图示、编辑、提取和保 存。 ●历史指令窗 该窗记录已经运作过的指令、函数、表达式,及它们运行的日期、时间。该窗中的 所有指令、文字都允许复制、重运行及用于产生M文件。 ● 捷径(Start)键 引出通往本MATLAB所包含的各种组件、模块库、图形用户界面、帮助分类目录、 演示算例等的捷径,以及向用户提供自建快捷操作的环境。 1.3 Command Window运行入门 MATLAB的使用方法和界面有多种形式。但最基本的,也是入门时首先要掌握的是: MATLAB指令窗(Command Window)的基本表现形态和操作方式。本书作者相信,通过 本节的文字解释,读者将对MATLAB使用方法有一个良好的初始感受。 1.3.1 Command Window指令窗简介 MATLAB指令窗默认地位于MATLAB桌面的右方(见图1.2-1)。假如,用户希望得 到脱离操作桌面的几何独立指令窗,只要点击该指令窗右上角的键,就可获得如图13-1 所示的指令窗。 小Command Tindow ▣x Eile Edit Debug Desktop Mindow Help 1Iew to MATLAB?Watch this Video see Demos,or read Gettix >>(12+2*(7-4))/3^2 ans 2 >》| o巫公 图1.3-1几何独立的指令窗 〖说明】 ● 图1.3-1指令窗表现了例1.3-1运行的情况。 若用户希望让独立指令窗嵌放回桌面,则只要点击Command Window右上角的~按钮, 或选中指令窗菜单{Desktop:Dock Command Window}便可。 1.3.2 最简单的计算器使用法 为易于学习,本节以算例方式叙述,并通过算例归纳一些MATLAB最基本的规则和语 法结构。建议读者,在深入学习之前,先读一读本节。 【例1.3-1】求[12+2×(7-4)]÷32的算术运算结果。本例演示:最初步的指令输入形式 和必需的操作步骤。 (1)用键盘在MATLAB指令窗中输入以下内容 >>(12+2*(7-4))/3^2 (2)在上述表达式输入完成后,按Eter]键,该指令被执行,并显示如下结果
3 所有的变量名、大小、字节数;在该窗中,可对变量进行观察、图示、编辑、提取和保 存。 历史指令窗 该窗记录已经运作过的指令、函数、表达式,及它们运行的日期、时间。该窗中的 所有指令、文字都允许复制、重运行及用于产生 M 文件。 捷径(Start)键 引出通往本 MATLAB 所包含的各种组件、模块库、图形用户界面、帮助分类目录、 演示算例等的捷径,以及向用户提供自建快捷操作的环境。 1.3 Command Window 运行入门 MATLAB 的使用方法和界面有多种形式。但最基本的,也是入门时首先要掌握的是: MATLAB 指令窗(Command Window)的基本表现形态和操作方式。本书作者相信,通过 本节的文字解释,读者将对 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】求 2 [12 2 (7 4)] 3 的算术运算结果。本例演示:最初步的指令输入形式 和必需的操作步骤。 (1)用键盘在 MATLAB 指令窗中输入以下内容 >> (12+2*(7-4))/3^2 (2)在上述表达式输入完成后,按 [Enter] 键,该指令被执行,并显示如下结果
ans 〖说明〗 ●本例在指令窗中实际运行的情况参见图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/8 S= 0.6345 〖说明】 ●MATLAB用3个或3个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。 ● 本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量S。 指令执行后,变量S被保存在MATLAB的工作空间(Workspace)中,以备后用。如 果用户不用clear指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中, 直到本MATLAB指令窗被关闭为止。 1.3.3 数值、变量和表达式 前节算例只是表演了“计算器”功能,那仅是MATLAB全部功能中小小一角。为深入 学习MATLAB,有必要系统介绍一些基本规定。本节先介绍关于变量的若干规定。 1 数值的记述 MATLAB的数值采用习惯的十进制表示,可以带小数点或负号。以下记述都合法。 3 -99 0.001 9.456 13e.34.5e33 在采用EEE浮点算法的计算机上,数值通常采用“占用64位内存的双精度”表示。 其相对精度是©ps(MATLAB的一个预定义变量),大约保持有效数字I6位。数值范围大 致从10-308到10308。 2 变量命名规则 ● 变量名、函数名是对字母大小写敏感的。如变量myvar和MyVar表示两个不同的变量。 sin是MATLAB定义的正弦函数名,但SN,Sin等都不是。 ● 变量名的第一个字符必须是英文字母,最多可包含63个字符(英文、数字和下连符)。 如myvar201是合法的变量名。 ● 变量名中不得包含空格、标点、运算符,但可以包含下连符。如变量名my var201是 合法的,且读起来更方便。而my,var201由于逗号的分隔,表示的就不是一个变量名。 3 MATLAB默认的数学常数 MATLAB为一些数学常数(Math Contants)预定义了变量名,见表1.3-l。每当MATLAB 启动,这些变量就被产生。这些变量都有特殊含义和用途。建议:用户在编写指令和程序时, 应尽可能不对表1.3-1所列预定义变量名重新赋值,以免产生混淆
4 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/8 S = 0.6345 〖说明〗 MATLAB 用 3 个或 3 个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。 本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量 S。 指令执行后,变量 S 被保存在 MATLAB 的工作空间(Workspace)中,以备后用。如 果用户不用 clear 指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中, 直到本 MATLAB 指令窗被关闭为止。 1.3.3 数值、变量和表达式 前节算例只是表演了“计算器”功能,那仅是 MATLAB 全部功能中小小一角。为深入 学习 MATLAB,有必要系统介绍一些基本规定。本节先介绍关于变量的若干规定。 1 数值的记述 MATLAB 的数值采用习惯的十进制表示,可以带小数点或负号。以下记述都合法。 3 -99 0.001 9.456 1.3e-3 4.5e33 在采用 IEEE 浮点算法的计算机上,数值通常采用“占用 64 位内存的双精度”表示。 其相对精度是 eps (MATLAB 的一个预定义变量),大约保持有效数字 16 位。数值范围大 致从 308 10 到 308 10 。 2 变量命名规则 变量名、函数名是对字母大小写敏感的。如变量 myvar 和 MyVar 表示两个不同的变量。 sin 是 MATLAB 定义的正弦函数名,但 SIN,Sin 等都不是。 变量名的第一个字符必须是英文字母,最多可包含 63 个字符(英文、数字和下连符)。 如 myvar201 是合法的变量名。 变量名中不得包含空格、标点、运算符,但可以包含下连符。如变量名 my_var_201 是 合法的,且读起来更方便。而 my,var201 由于逗号的分隔,表示的就不是一个变量名。 3 MATLAB 默认的数学常数 MATLAB 为一些数学常数(Math Contants)预定义了变量名,见表 1.3-1。每当 MATLAB 启动,这些变量就被产生。这些变量都有特殊含义和用途。建议:用户在编写指令和程序时, 应尽可能不对表 1.3-1 所列预定义变量名重新赋值,以免产生混淆
表1.3-1 MATLAB为数学常数预定义的变量名 预定义变量 含义 预定义变量 含 义 eps 浮点数相对精度2-52 NaN或nan 不是一个数(Not a Number), i或j 虚单元i=j=√-1 如0/0,o0/0 nf或inf 无穷大,如1/0 pi 圆周率π intmax 可表达的最大正整数, realmax 最大正实数,默认1.7977e+308 默认(2147483647) intmin 可表达的最小负整数, realmin 最小正实数,默认2.2251e-308 默认(-2147483648) 〖说明】 ● 假如用户对表中任何一个预定义变量进行赋值,则那个变量的默认值将被用户新赋的值 “临时”覆盖。所谓“临时”是指:假如使用clear指令清除MATLAB内存中的变量, 或MATLAB指令窗被关闭后重新启动,那么所有的预定义变量将被重置为默认值,不 管这些预定义变量曾被用户赋过什么值。 在遵循EEE算法规则的机器上,被0除是允许的。它不会导致程序执行的中断,只是 在给出警告信息的同时,用一个特殊名称(如Inf,NaN)记述。这个特殊名称将在以 后的计算中以合理的形式发挥作用。 关于它们的更详细的帮助信息,可在MATLAB帮助浏览器左侧Contents页的 找到。 【例13-3】运用以下指令,以便初步了解关于常数的预定义变量。本例演示:各常数的含 义。 format short e RMAd=realmax ('double') 名双精度类型(默认)时最大实数 RMAs=realmax('single') %单精度类型时最大实数 RMAd 1.7977e+308 RMAs 3.4028e+038 IMA64=intmax ('int64') 号int64整数类型时最大正整数 IMA32=intmax 名int32(默认)整数类型时最大正整数 IMA32=intmax('int16') 号int16整数类型时最大正整数 IMA64 9223372036854775807 IMA32= 2147483647 IMA32= 32767 el=eps %双精度类型时的相对精度 e2=eps(2) 号表达2时的绝对精度 e1= 2.220446049250313e-016 e2= 4.440892098500626e-016 pi ans 3.141592653589793 5
5 表 1.3-1 MATLAB 为数学常数预定义的变量名 预定义变量 含 义 预定义变量 含 义 eps 浮点数相对精度 52 2 NaN 或 nan 不是一个数(Not a Number), i 或 j 如 0/0, / 虚单元i j 1 Inf 或 inf 无穷大,如 1/0 pi 圆周率 intmax 可表达的最大正整数, 默认(2147483647) realmax 最大正实数,默认 1.7977e+308 intmin 可表达的最小负整数, 默认(-2147483648) realmin 最小正实数,默认 2.2251e-308 〖说明〗 假如用户对表中任何一个预定义变量进行赋值,则那个变量的默认值将被用户新赋的值 “临时”覆盖。所谓“临时”是指:假如使用 clear 指令清除 MATLAB 内存中的变量, 或 MATLAB 指令窗被关闭后重新启动,那么所有的预定义变量将被重置为默认值,不 管这些预定义变量曾被用户赋过什么值。 在遵循 IEEE 算法规则的机器上,被 0 除是允许的。它不会导致程序执行的中断,只是 在给出警告信息的同时,用一个特殊名称(如 Inf,NaN)记述。这个特殊名称将在以 后的计算中以合理的形式发挥作用。 关于它们的更详细的帮助信息,可在 MATLAB 帮助浏览器左侧 Contents 页的 找到。 【例 1.3-3】运用以下指令,以便初步了解关于常数的预定义变量。本例演示:各常数的含 义。 format short e RMAd=realmax('double') % 双精度类型(默认)时最大实数 RMAs=realmax('single') % 单精度类型时最大实数 RMAd = 1.7977e+308 RMAs = 3.4028e+038 IMA64=intmax('int64') % int64 整数类型时最大正整数 IMA32=intmax % int32(默认)整数类型时最大正整数 IMA32=intmax('int16') % int16 整数类型时最大正整数 IMA64 = 9223372036854775807 IMA32 = 2147483647 IMA32 = 32767 e1=eps % 双精度类型时的相对精度 e2=eps(2) % 表达 2 时的绝对精度 e1 = 2.220446049250313e-016 e2 = 4.440892098500626e-016 pi ans = 3.141592653589793
4 运算符和表达式 (I)经典教科书上的算术运算符(Arithmetic Operations)在MATLAB中的表达方式,见 表13-2。 表1.3-2 MATLAB表达式的基本运算符 数学表达式 矩阵运算符 数组运算符 加 a+b a+b a+b 减 a-b a-b a-b 乘 axb a*b a.*b 除 a÷b a/b或bIa a./b或bla 幂 ab a^b a.^b 圆括号 () () () 〖说明〗 ● 因为MATLAB面向复数设计,其所有运算定义在复数域上。所以对于方根问题,运算 只返还一个“主解”。要得复数的全部方根,必须专门编写程序(见例13-6)。 ● 因为MATLAB面向矩阵/数组设计,标量被看作(1×1)的矩阵/数组。 ● 数组运算的“乘、除、幂”规则与相应矩阵运算根本不同。前者的算符比后者多一个“小 黑点”。(参见例1.3-9,例1.3-10。更详细说明请看第3章) ● MATLAB用左斜杠或右斜杠分别表示“左除”或“右除”运算。对标量而言,“左除” 和“右除”的作用结果相同。但对矩阵来说,“左除”和“右除”将产生不同的结果。 ● 关于它们的更详细的帮助信息,可在MATLAB帮助浏览器左侧Contents页的 节点找到。 关于它们的帮助信息,也可在MATLAB帮助浏览器左上方的搜索栏中输入Arithmetic Operations,经搜索获得。 (2)MATLAB书写表达式的规则与“手写算式”几乎完全相同。 表达式由变量名、运算符和函数名组成。 ● 表达式将按与常规相同的优先级自左至右执行运算。 ● 优先级的规定是:指数运算级别最高,乘除运算次之,加减运算级别最低。 ● 括号可以改变运算的次序。 ● 书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。 5 面向复数设计的运算一一MATLAB特点之一 MATLAB的所有运算都是定义在复数域上的。这样设计的好处是:在进行运算时,不 必像其他程序语言那样把实部、虚部分开处理。为描述复数,虚数单位用预定义变量ⅰ或j表 示。 复数z=a+bi=re直角坐标表示和极坐标表示之间转换的MATLAB指令如下。 real(z) 给出复数z的实部a=rcoS0。 imag(z) 给出复数z的虚部b=rsin。 abs(z) 给出复数z的模Va2+b2。 6 angle(z) 以弧度为单位给出复数z的幅角arctan a 【例13-4】复数1=4+31,52=1+2i,2?=26表达,及计算:=12。本例演示:正 23 确的复数输入法:涉及复数表示方式的基本指令。 (1)经典教科书的直角坐标表示法 z1=4+3i 合法,但建议少用或不用 6
6 4 运算符和表达式 (1)经典教科书上的算术运算符(Arithmetic Operations)在 MATLAB 中的表达方式,见 表 1.3-2。 表 1.3-2 MATLAB 表达式的基本运算符 数学表达式 矩阵运算符 数组运算符 加 a b a + b a + b 减 a b a - b a - b 乘 a b a * b a .* b 除 a b a / b 或 b \ a a ./ b 或 b .\ a 幂 b a a ^ b a .^ b 圆括号 ( ) ( ) ( ) 〖说明〗 因为 MATLAB 面向复数设计,其所有运算定义在复数域上。所以对于方根问题,运算 只返还一个“主解”。要得复数的全部方根,必须专门编写程序(见例 1.3-6)。 因为 MATLAB 面向矩阵/数组设计,标量被看作(11) 的矩阵/数组。 数组运算的“乘、除、幂”规则与相应矩阵运算根本不同。前者的算符比后者多一个“小 黑点”。(参见例 1.3-9,例 1.3-10。更详细说明请看第 3 章) MATLAB 用左斜杠或右斜杠分别表示“左除”或“右除”运算。对标量而言,“左除” 和“右除”的作用结果相同。但对矩阵来说,“左除”和“右除”将产生不同的结果。 关于它们的更详细的帮助信息,可在 MATLAB 帮助浏览器左侧 Contents 页的 节点找到。 关于它们的帮助信息,也可在 MATLAB 帮助浏览器左上方的搜索栏中输入 Arithmetic Operations,经搜索获得。 (2)MATLAB 书写表达式的规则与“手写算式”几乎完全相同。 表达式由变量名、运算符和函数名组成。 表达式将按与常规相同的优先级自左至右执行运算。 优先级的规定是:指数运算级别最高,乘除运算次之,加减运算级别最低。 括号可以改变运算的次序。 书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。 5 面向复数设计的运算——MATLAB 特点之一 MATLAB 的所有运算都是定义在复数域上的。这样设计的好处是:在进行运算时,不 必像其他程序语言那样把实部、虚部分开处理。为描述复数,虚数单位用预定义变量 i 或 j 表 示。 复数 i z a bi re 直角坐标表示和极坐标表示之间转换的 MATLAB 指令如下。 real(z) 给出复数 z 的实部 a r cos 。 imag(z) 给出复数 z 的虚部 b rsin 。 abs(z) 给出复数 z 的模 2 2 a b 。 angle(z) 以弧度为单位给出复数 z 的幅角 a b arctan 。 【例 1.3-4】复数 i z i z i z e 6 1 4 3 , 2 1 2 , 3 2 表达,及计算 3 1 2 z z z z 。本例演示:正 确的复数输入法;涉及复数表示方式的基本指令。 (1)经典教科书的直角坐标表示法 z1= 4 + 3i %合法,但建议少用或不用
z1= 4+ 3i 〖说明】 ·本书建议读者不要使用这种输入格式。因为这种书写格式,只适用于“数值标量”复数, 而不适用于“数值矩阵” ● 在这种书写格式中,4i是一个完整的虚数,在4和i之间不许“空格”存在。 (2)采用运算符构成的直角坐标表示法和极坐标表示法 z2=1+2★1 运算符构成的直角坐标表示法 z3=2*exp (i*pi/6) 运算符构成的极坐标表示法 z=z1*z2/z3 z2= 1+ 2i z3= 1.7321+ li 2= 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.884 image_z= 5.2631 magnitude z 5.5902 angle z radian 1.2271 angle_z_degree= 70.305 【例1.3-5】图示复数21=4+3i,z)=1+2i的和(配图1.3-2)。本例演示:MATLAB的运 算在复数域上进行;指令后“分号”的作用:复数加法的几何意义:展示MATLAB的可视 化能力(让读者感受,但不要求理解)。 z1=4+3*i:z2=1+2*i: 号在一个物理行中,允许输入多条指令。 号但各指令间要用“分号”或“逗号”分开。 指令后采用“分号”,使运算结果不显示。 z12=z1+z2 号以下用于绘图 clf,hold on 号c1£清空图形窗。逗号用来分隔两个指令。 plot ([0,z1,z12],'-b','Linewidth',3) plot([0,z12],'-r','Linewidth',3) plot ([z1,z12],'ob','Markersize',8) hold off,grid on, axis equal axis([0,6,0,6]) text(3.5,2.3,'z11) text(5,4.5,'z2') text(2.5,3.5,'z12') xlabel('real') ylabel('image') z12= 5.0000+5.00001
7 z1 = 4 + 3i 〖说明〗 本书建议读者不要使用这种输入格式。因为这种书写格式,只适用于“数值标量”复数, 而不适用于“数值矩阵”。 在这种书写格式中,4i 是一个完整的虚数,在 4 和 i 之间不许“空格”存在。 (2)采用运算符构成的直角坐标表示法和极坐标表示法 z2 = 1 + 2 * i %运算符构成的直角坐标表示法 z3=2*exp(i*pi/6) %运算符构成的极坐标表示法 z=z1*z2/z3 z2 = 1 + 2i z3 = 1.7321 + 1i z = 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.884 image_z = 5.2631 magnitude_z = 5.5902 angle_z_radian = 1.2271 angle_z_degree = 70.305 【例 1.3-5】图示复数 z 4 3i,z 1 2i 1 2 的和(配图 1.3-2)。本例演示:MATLAB 的运 算在复数域上进行;指令后“分号”的作用;复数加法的几何意义;展示 MATLAB 的可视 化能力(让读者感受,但不要求理解)。 z1=4+3*i;z2=1+2*i; %在一个物理行中,允许输入多条指令。 %但各指令间要用“分号”或“逗号”分开。 %指令后采用“分号”,使运算结果不显示。 z12=z1+z2 %以下用于绘图 clf,hold on %clf 清空图形窗。逗号用来分隔两个指令。 plot([0,z1,z12],'-b','LineWidth',3) plot([0,z12],'-r','LineWidth',3) plot([z1,z12],'ob','MarkerSize',8) hold off,grid on, axis equal axis([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
Z12 real 图1.3-2两个复数相加 【例1.3-6】用MATLAB计算-8能得到-2吗(配图1.3-3)?本例演示:MATLAB运 算定义在复数域的实质:指令后“分号”抑制运算结果的显示:MATLAB的方根运算规则: 更复杂指令的表示方式:展现MATLAB的图形表现力。(对于本例指令,读者能有体验就 可,不必强求理解。) (1)直接计算时,得到处于第一象限的方根。 a=-8; x_a=a^(1/3) 号求3次根 r a 1.0000+1.73211 (2)√-8的全部方根计算如下 号先构造一个多项式p()=r3-a p=[1,0,0,-a】;p是多项式p(r)的系数向量 号指令末尾的“英文状态分号”使该指令运行后,不显示结果。 R=roots (p) 求多项式的根 R= -2.0000 1.0000+1.7321i 1.0000-1.73211 (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:'),grid on 号画一个半径为R的圆 号注意“英文状态逗号”在不同位置的作用 hold on plot (R(2),'.','Markersize',30,'Color','r') 号画第一象限的方根 p1ot(R([1,3]),'o','MarkerSize',15,'Color','b')号画另两个方根
8 0 1 2 3 4 5 6 0 1 2 3 4 5 6 z1 z2 z12 real image 图 1.3-2 两个复数相加 【例 1.3-6】 用 MATLAB 计算3 8 能得到 –2 吗(配图 1.3-3)?本例演示:MATLAB 运 算定义在复数域的实质;指令后“分号”抑制运算结果的显示;MATLAB 的方根运算规则; 更复杂指令的表示方式;展现 MATLAB 的图形表现力。(对于本例指令,读者能有体验就 可,不必强求理解。) (1)直接计算时,得到处于第一象限的方根。 a=-8; r_a=a^(1/3) %求 3 次根 r_a = 1.0000 + 1.7321i (2)3 8 的全部方根计算如下 % 先构造一个多项式 p r r a 3 ( ) p=[1,0,0,-a]; %p 是多项式 p(r)的系数向量 %指令末尾的“英文状态分号”使该指令运行后,不显示结果。 R=roots(p) %求多项式的根 R = -2.0000 1.0000 + 1.7321i 1.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:'),grid on %画一个半径为 R 的圆 %注意“英文状态逗号”在不同位置的作用 hold on plot(R(2),'.','MarkerSize',30,'Color','r') %画第一象限的方根 plot(R([1,3]),'o','MarkerSize',15,'Color','b') %画另两个方根
axis([-3,3,-3,3]),axis square 名保证屏幕显示呈真圆 hold off 图1.3-3(-8)的全部三次方根分布 〖说明】 ●本例有助于理解MATLAB的计算特点。 ●对复数进行方根运算时,MATLAB只给出处于“第一象限”的那个根。 6 面向数组设计的运算一一MATLAB特点之二 在MATLAB中,标量数据被看作(1×I)的数组(Aray)数据。所有的数据都被存放在 适当大小的数组中。为加快计算速度(运算的向量化处理),MATLAB对以数组形式存储 的数据设计了两种基本运算:一种是所谓的数组运算:另一种是所谓的矩阵运算。在此仅以 算例展示MATLAB的计算特点,更详细的叙述请见第3章。 「13 【例1.3-7】实数数组AR= 的“一行”输入法。本例演示:二维数组的最基本、最 24 常用输入法:二维数组输入的三大要素。 (1)在键盘上输入下列内容 AR=[1,3;2,4] (2)按[Enter]键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: AR 3 2 4 〖说明】 在MATLAB中,不必事先对数组维数及大小做任何说明,内存将自动配置。 二维数组输入的三大要素:数组标识符“[]”:元素分隔符空格或逗号“,”:数组行间分 隔符分号“,”或“回车键”。注意:所有标点符号都是“英文状态的符号”。 MATLAB对字母大小写是敏感的。比如本例中的数组赋给了变量AR,而不是Ar,aR,或 9
9 axis([-3,3,-3,3]),axis square %保证屏幕显示呈真圆 hold off -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 图 1.3-3 (-8)的全部三次方根分布 〖说明〗 本例有助于理解 MATLAB 的计算特点。 对复数进行方根运算时,MATLAB 只给出处于“第一象限”的那个根。 6 面向数组设计的运算——MATLAB 特点之二 在 MATLAB 中,标量数据被看作(11) 的数组(Array)数据。所有的数据都被存放在 适当大小的数组中。为加快计算速度(运算的向量化处理),MATLAB 对以数组形式存储 的数据设计了两种基本运算:一种是所谓的数组运算;另一种是所谓的矩阵运算。在此仅以 算例展示 MATLAB 的计算特点,更详细的叙述请见第 3 章。 【例 1.3-7】实数数组 2 4 1 3 AR 的“一行”输入法。本例演示:二维数组的最基本、最 常用输入法;二维数组输入的三大要素。 (1)在键盘上输入下列内容 AR= [1,3;2,4] (2)按 [Enter] 键,指令被执行。 (3)在指令执行后,MATLAB 指令窗中将显示以下结果: AR = 1 3 2 4 〖说明〗 在 MATLAB 中,不必事先对数组维数及大小做任何说明,内存将自动配置。 二维数组输入的三大要素:数组标识符“[ ]”;元素分隔符空格或逗号“,”;数组行间分 隔符分号“;”或“回车键”。注意:所有标点符号都是“英文状态的符号”。 MATLAB 对字母大小写是敏感的。比如本例中的数组赋给了变量 AR,而不是 Ar, aR, 或 ar
在全部键入一个指令行内容后,必须按下[Enter]键,该指令才会被执行。请读者务必记住 此点。出于叙述简明的考虑,本书此后将不再重复提及此操作。 7 【例1.3-8】实数数组AI= 的“分行”输入法。 68 AI=[5,7 6,8] AI 5 7 6 8 〖说明】 本例采用这种输入法是为了视觉习惯。当然,对于较大的数组也可采用此法。 ● 在这种输入方法中,“回车”符用来分隔数组中的行。 [1-5i3-7i 【例1.3-9】对复数数组A= 进行求实部、虚部、模和幅角的运算。本例演 2-6i4-8i 示:复数数组的生成:MATLAB指令对数组元素“并行操作”的实质。 (1)创建复数数组 AR=[1,3;2,4]:AI=[5,7:6,8]; A=AR-AI*i %形成复数矩阵 A= 1.0000-5.0000i 3.0000-7.0000i 2.0000-6.0000i 4.0000-8.0000i (2)求复数数组的实部和虚部 A real=real(A) A image=imag (A) A real 1 3 2 4 A_image -5 -7 -6 -8 (3)求复数数组中各元素的模和幅角一一循环法(笨拙!) for m=1:2 for n=1:2 Am1 (m,n)=abs (A (m,n)); Aa1(m,n)=angle(a(m,n))*180/pi;号以度为单位计算幅角 end end Aml,Aal Am1 5.0990 7.6158 6.3246 8.9443 Aal -78.6901 -66.8014 -71.5651 -63.4349 (4)求复数数组中各元素的模和幅角一一直接法 Am2=abs (A) Aa2=angle(A)*180/pi Am2 5.0990 7.6158 6.3246 8.9443 9
10 在全部键入一个指令行内容后,必须按下 [Enter] 键,该指令才会被执行。请读者务必记住 此点。出于叙述简明的考虑,本书此后将不再重复提及此操作。 【例 1.3-8】实数数组 6 8 5 7 AI 的“分行”输入法。 AI=[5,7 6,8] AI = 5 7 6 8 〖说明〗 本例采用这种输入法是为了视觉习惯。当然,对于较大的数组也可采用此法。 在这种输入方法中,“回车”符用来分隔数组中的行。 【例 1.3-9】对复数数组 i i i i 2 6 4 8 1 5 3 7 A 进行求实部、虚部、模和幅角的运算。本例演 示:复数数组的生成;MATLAB 指令对数组元素“并行操作”的实质。 (1)创建复数数组 AR=[1,3;2,4];AI=[5,7;6,8]; A=AR-AI*i %形成复数矩阵 A = 1.0000 - 5.0000i 3.0000 - 7.0000i 2.0000 - 6.0000i 4.0000 - 8.0000i (2)求复数数组的实部和虚部 A_real=real(A) A_image=imag(A) A_real = 1 3 2 4 A_image = -5 -7 -6 -8 (3)求复数数组中各元素的模和幅角——循环法(笨拙!) for m=1:2 for n=1:2 Am1(m,n)=abs(A(m,n)); Aa1(m,n)=angle(A(m,n))*180/pi; %以度为单位计算幅角 end end Am1,Aa1 Am1 = 5.0990 7.6158 6.3246 8.9443 Aa1 = -78.6901 -66.8014 -71.5651 -63.4349 (4)求复数数组中各元素的模和幅角——直接法 Am2=abs(A) Aa2=angle(A)*180/pi Am2 = 5.0990 7.6158 6.3246 8.9443