Matlab软件简介 Matlab由Matrix和Laboratory两个词的前3个字母组合而成.它是Mathworks公司推出的一套高性能的 数值计算和可视化数学软件,被誉为“巨人肩上的工具 :它是 一种广泛应用于工程计算及数值分析领域的 新型高级语立它把科学计,的结果可视化和编程部中 能强大 程效的发 作者 政美各高等院校,Mab己经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态 系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士及博士研究生必须登握的基本技能在国际 学术界,Maab已经被确认为准确、可靠的科学计算标准软件,在许多国际一流的学术刊物上,都可以看到 Matlab的应用. 点与主要功能 值计功能Ma。 以矩阵为基本单位 包括矩阵运算、多 项式和有理分式运算、数据统计分析、数值积分、优化处理等:Mb的命令与数学中的符号、 公式非常接 近,可读性强,容易掌握 (3)符号运算功能:与Maple软件相结合,使得Matlab具有强大的符号计算功能,用符号计算能得到 问题的解析解 坐标的 功能} 提供 丰言的图命令,可轻而易举地绘制二维、三推图形,并可进行图形和 通政学函致酒用、数据结果,销入、第出、面的对象等程序适古 特征,而且简单易学、编程效率高 (6)丰富的工具箱:Mb工具箱分为功能性工具箱和根据专门领域中的特殊需要而设计的各种学科 性工具箱功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等:学科性工具 ,信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱等, 这些工具箱进行相关领域的科学研究. 工作环装介 双击Windows桌面上的快捷图标,或者从【开始】菜单的【程序】子莱单中的Matlab7.0或者在Malb 目录中找到可执行程序matlab.cx心,双击该程序使之启动,启动后的对话框如图1所示 当前工作目录 命令提示符 命令窗口 当前工作空间 输入命令的历史记录
1 Matlab 软件简介 Matlab 由 Matrix 和 Laboratory 两个词的前 3 个字母组合而成.它是 Mathworks 公司推出的一套高性能的 数值计算和可视化数学软件,被誉为“巨人肩上的工具”.它是一种广泛应用于工程计算及数值分析领域的 新型高级语言,它把科学计算、结果可视化和编程都集中在一个使用非常方便的环境中.自 1984 年该软件推 向市场以来,历经 20 多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发软件.Matlab 功 能强大、简单易学、编程效率高,深受广大科技工作者的欢迎. 在欧美各高等院校,Matlab 已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态 系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士及博士研究生必须掌握的基本技能.在国际 学术界,Matlab 已经被确认为准确、可靠的科学计算标准软件,在许多国际一流的学术刊物上,都可以看到 Matlab 的应用. 一、Matlab 概述 1. Matlab 的特点与主要功能 (1) Matlab 是一个交互式软件系统:输入一条命令,立即就可以得出该命令的结果. (2) 数值计算功能:Matlab 以矩阵为基本单位,提供了十分丰富的数值计算函数,包括矩阵运算、多 项式和有理分式运算、数据统计分析、数值积分、优化处理等;Matlab 的命令与数学中的符号、公式非常接 近,可读性强,容易掌握. (3) 符号运算功能:与 Maple 软件相结合,使得 Matlab 具有强大的符号计算功能,用符号计算能得到 问题的解析解. (4) 图形功能:Matlab 提供了丰富的绘图命令,可轻而易举地绘制二维、三维图形,并可进行图形和 坐标的标识、视角和光照设计、色彩精细控制等. (5) 编程功能:Matlab 具有程序结构控制、函数调用、数据结果、输入、输出、面向对象等程序语言 特征,而且简单易学、编程效率高. (6) 丰富的工具箱:Matlab 工具箱分为功能性工具箱和根据专门领域中的特殊需要而设计的各种学科 性工具箱.功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等;学科性工具 箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱等, 用户可以直接利用这些工具箱进行相关领域的科学研究. 2. Matlab 界面 (1) Matlab7.0 的工作环境简介 1) Matlab7.0 的启动 双击 Windows 桌面上的快捷图标,或者从【开始】菜单的【程序】子菜单中的 Matlab7.0 或者在 Matlab 目录中找到可执行程序 matlab.exe,双击该程序使之启动,启动后的对话框如图 1 所示. 输入命令的历史记录 当前工作目录 当前工作空间 命令提示符 命令窗口
图1 在默认设置情况下,Mtab集成视窗环境包括5个窗口:主窗口、命令窗口、历史窗口、当前目录窗 口和作管理口 合今窗口(cn mand window):一般地,MatIab的所有函数和命令都可以在命令窗口中输入和执行, 在Matab启动后,将显示提示符“>”,用户就可以在提示符后面键入命令,按下回车键后,系统会解释并 执行所输入的命令,最后给出计算结果 击某 可以选 菜单中的“Clea Command History”命令来实我 当前目录窗口(current directory):在该窗口中可以显示或改变当前目录,还可以显示当前目录下的文 件,包括文件名、文件类型、最后修改时问、该文件的说明信息等并提供搜索功能 工作区管理窗 E该窗口中显 所有当前保存在内存中的Matlab变量的变量名、值、 类型等信息并 变量进行观察、编辑、保存和 :助的方注首生 选项获得帮助.此外,Matlab也提供了在命令窗口中的获得帮助的方法,在命令窗口中获得Matlab帮助的命 令及说明如表1所列,其调用式为命令加上指定参数,例如: 表命令窗口中获得Matlab帮助的命令 命令 lookfor 在即把览器中是示指定雨数的参老信 helpwin 打开帮助浏览器,并且将初始界面置于Matab函数的M文件帮助信息 helpdesk 打开一个名为elp]的帮助窗口 demo 打开一个hep的演示模型界面,从而方便了解Matlab的基本功能 另外,Matlab6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个 字母,然后按b键,系统就会列出所有这几个字母开头的命令 查Matlab的变量与函数 单个词: 3)变量名最多不超过3引个字符,第31个字符之后的字符将被忽略 (④)变量名必须以字母开始,可以是任意字母、数字或下划线组成,但不能使用标点符号例如6,2, myfile,my_fle等都是合法的变量名,而myfe, 真除了上述命名规则定义的变量外,Mb还有一些特殊变量,它在工作空间中看不到,但是用户可以 表2特殊变量去 特殊变量 收值 数学中无穷小的近似值(2.2204e016)》 inf 无穷大,如10 NaN 不定量.如00 虚数单位正√ nargin 函数的给入参数个数 nargout 函数的给出参数个数 realmax 系统所能表示的最大正实数
2 图 1 在默认设置情况下,Matlab 集成视窗环境包括 5 个窗口:主窗口、命令窗口、历史窗口、当前目录窗 口和工作区管理窗口. 2) 窗口介绍 主窗口:不能进行任何计算,它只是用来完成一些环境参数的设置,同时它提供了一个框架载体,其 他窗口都是包含在该窗口中的. 命令窗口(command window):一般地,Matlab 的所有函数和命令都可以在命令窗口中输入和执行, 在 Matlab 启动后,将显示提示符“>>”,用户就可以在提示符后面键入命令,按下回车键后,系统会解释并 执行所输入的命令,最后给出计算结果. 历史窗口(command history):显示用户近期输入过的指令,并标明使用时间,以便用户查询.如果双 击某一行命令,会在命令窗口中执行该命令,如果要清除这些历史记录,可以选择“Edit”菜单中的“Clear Command History”命令来实现. 当前目录窗口(current directory):在该窗口中可以显示或改变当前目录,还可以显示当前目录下的文 件,包括文件名、文件类型、最后修改时间、该文件的说明信息等并提供搜索功能. 工作区管理窗口(workspace):在该窗口中显示所有当前保存在内存中的 Matlab 变量的变量名、值、 类型等信息,并可对变量进行观察、编辑、保存和删除. 3. Matlab 的帮助系统 Matlab 和其他高级语言一样,具有完善的帮助系统. Matlab 提供了相当丰富的帮助信息,同时也提供了 三种获得帮助的方法.首先,可以通过主窗口工具栏的【Help】菜单来获得帮助,也可以通过工具栏的帮助 选项获得帮助.此外,Matlab 也提供了在命令窗口中的获得帮助的方法,在命令窗口中获得 Matlab 帮助的命 令及说明如表 1 所列,其调用式为命令加上指定参数,例如: >>help sin 表 1 命令窗口中获得 Matlab 帮助的命令 命令 说明 help 在命令窗口中示当前帮助系统中所包含的所有项目 lookfor 对搜索范围内的 M 文件进行关键字搜索 doc 在帮助浏览器中显示指定函数的参考信息 helpwin 打开帮助浏览器,并且将初始界面置于 Matlab 函数的 M 文件帮助信息 helpdesk 打开一个名为[help]的帮助窗口 demo 打开一个[help]的演示模型界面,从而方便了解 Matlab 的基本功能 另外,Matlab6.0 以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个 字母,然后按 Tab 键,系统就会列出所有这几个字母开头的命令. 二、Matlab 的变量与函数 1.变量 Matlab 中可以自定义变量.变量的命名必须符合以下几条规则: (1) 变量名必须是不含空格的单个词; (2) 变量名区分大小写; (3) 变量名最多不超过 31 个字符,第 31 个字符之后的字符将被忽略; (4) 变量名必须以字母开始,可以是任意字母、数字或下划线组成,但不能使用标点符号.例如 f,f12, myfile,my_file 等都是合法的变量名,而 my;file,_f,my file 等都是不合法的变量名. 除了上述命名规则定义的变量外,Matlab 还有一些特殊变量,它在工作空间中看不到,但是用户可以 直接调用,如表 2 所示. 表 2 特殊变量表 特殊变量 取值 ans 用于结果的缺省变量名 pi 圆周率 的近似值(3.1416) eps 数学中无穷小的近似值(2.2204e-016) inf 无穷大,如 1/0 NaN 不定量,如 0/0 i,j 虚数单位 i=j= −1 nargin 函数的输入参数个数 nargout 函数的输出参数个数 realmax 系统所能表示的最大正实数
realmin 系统所能表示的最小正实数 2符号变量 在Matlab语言中,进行符号运算时需要先用syms命令声明符号变量和表达式 例如: 为制米利 sxypositive 声明变量x,y为整数类型】 3.函 Matlab软件提供了近20类基本命令函数,它们有一部分是Matlab的内部命令,有一部分是以M文件 形式出现的函数这些M文件形式的函数扩展了Mab的功能,对于这些命令可以通过在命令行中输入“Hlp 函数”名来获得有关这个命令函数使用的详细说不 函数老 基本的数学函数,如表3所示 表3 函 正弦函 函员 tan(x) 反正函影 exD(x) 以。为底的指数函数 log10(x) 以10为底的对数函数 log(x) 自然对数函数 sqr(x) 平方根函数 abs(x) 绝对值或向量的长度函数 max(x) 最大值函数 min(x 最小值函数 sum(x) 求和函数 sign( 四舍五入到最近的整数函数 方向取数函数 gca(x 约数函数 使用 法错识 位是弧度还是度等。 (3)函数允许嵌套.例如,可以使用sqr1+sim(pi2)的形式,即, +m 4.M文件 M文件是由Matlab语句(命令或函数)构成的ASCI码文本文件,文件名必须以“m”为扩展名通 过在命令窗口调用M文件,从而实现一次执行多条Mlb语句的功能,另外也可以通过M文件的方式自定 义函 建立新的M文件有以下三种方法 Naw菜单项 M-fle命今 (3)命令按钮操作:单击Maab命令窗口工具栏上的“新建”命令按钮 M文件有命令文件和函数文件两种形式下面分别介绍. (1)命令文件 令文件是Malb命令或函数的组合,没有输入出参数当用户要运行的指令较多时,可以直接》 键盘上 和代名可手石 抽行 中的命令 就会自 在运行的过程中所产生的变量均是全局变量,这些变量一旦生成,就一直保存在内存空间,除非用户将它们 清除(如用clear命令) 例如要求数1,2,3,4,100的和,可建立一个M文件,在编辑器中写出如下程序: forn-1:100 s=s+n: end 3
3 realmin 系统所能表示的最小正实数 在 Matlab 中,定义变量时应避免与这些特殊变量名重复,以防改变这些变量的值,如果已改变了某个 变量的值,可以通过“clear 变量名”命令恢复该变量的初始设定值. 2.符号变量 在 Matlab 语言中,进行符号运算时需要先用 syms 命令声明符号变量和表达式. 例如: >>syms x syms 命令不仅可以声明一个变量,还可以指定这个变量的数学特性,例如: >>syms x y real 声明变量 x,y 为实数类型, >>syms x y positive 声明变量 x,y 为整数类型. 3.函数 Matlab 软件提供了近 20 类基本命令函数,它们有一部分是 Matlab 的内部命令,有一部分是以 M 文件 形式出现的函数.这些M 文件形式的函数扩展了Matlab 的功能,对于这些命令可以通过在命令行中输入“Help 函数”名来获得有关这个命令函数使用的详细说明.下面列出一些基本的数学函数,如表 3 所示. 表 3 基本数学函数表 函数 名称 函数 名称 sin(x) 正弦函数 asin(x) 反正弦函数 cos(x) 余弦函数 acos(x) 反余弦函数 tan(x) 正切函数 atan(x) 反正切函数 exp(x) 以 e 为底的指数函数 log10(x) 以 10 为底的对数函数 log(x) 自然对数函数 sqrt(x) 平方根函数 abs(x) 绝对值或向量的长度函数 max(x) 最大值函数 min(x) 最小值函数 sum(x) 求和函数 sign(x) 符号函数 round(x) 四舍五入到最近的整数函数 ceil(x) 朝正无穷方向取整函数 floor(x) 朝负无穷方向取整函数 fix(x) 朝零方向取整函数 gcd(x,y) 求两整数的最大公约数函数 使用函数需要注意以下几点: (1) 函数一定是出现在等式的右边,写在左边将出现语法错误. (2) 每个函数对其自变量的个数和格式都有一定的要求,如使用三解函数时要注意函数自变量角度的单 位是弧度还是度等. (3) 函数允许嵌套.例如,可以使用 sqrt(1+sin(pi/2))的形式,即 1 sin 2 + . 4.M 文件 M 文件是由 Matlab 语句(命令或函数)构成的 ASCII 码文本文件,文件名必须以“.m”为扩展名.通 过在命令窗口调用 M 文件,从而实现一次执行多条 Matlab 语句的功能,另外也可以通过 M 文件的方式自定 义函数. 建立新的 M 文件有以下三种方法: (1) 菜单操作:Matlab 命令窗口的 File 菜单 New 菜单项 M-file 命令. (2) 命令操作:在 Matlab 命令窗口输入命令 edit. (3) 命令按钮操作:单击 Matlab 命令窗口工具栏上的“新建”命令按钮. M 文件有命令文件和函数文件两种形式.下面分别介绍. (1) 命令文件 命令文件是 Matlab 命令或函数的组合,没有输入/输出参数.当用户要运行的指令较多时,可以直接从 键盘上逐行输入指令,但这样做显得很麻烦,而命令文件则可以较好地解决这一问题.用户可以将一组相关 命令编辑在同一个 M 文件中,运行时只在命令窗口需输入文件名后回车,Matlab 就会自动按顺序执行文件 中的命令,这类似于批处理文件.命令文件中的语句可以访问 Matlab 工作空间(workspace)中的所有数据. 在运行的过程中所产生的变量均是全局变量,这些变量一旦生成,就一直保存在内存空间,除非用户将它们 清除(如用 clear 命令). 例如要求数 1,2,3,4,.,100 的和,可建立一个 M 文件,在编辑器中写出如下程序: s=0; for n=1:100 s=s+n; end
保存为 iuhe.m(M文件名),然后在命令窗口中执行,得结果 (2)函数文件 种形式的M文件 它的第 句可执行语句是以con引导的定义语句,在函数文件 量 Matab函数文件的格式为 unction返回参数1,参数2,=函数名(输入参数1,参数2,.) 函数体 例如,定义函数∫x,y)=X2+y-3y,并计算f(2,3),建立一个M文件,在编辑器中写出如下程 序 function f=a(x y) %函数名为a,返回值为 A3+yA3.3率 %这是函数主体 保存为am(文件名与函数名一致),然后在命令窗口中执行,得到如下结果 1运算符 Malb中的运算符可分为3类,它们分别是算术运算符、关系运算符与逻辑运算符。 算才 算术运算符是构成运算的最基本的操作命令,可以在Mab的命令窗口中直接运行,如表4所列 表4算术运算行 运算符 能说明 ,两个数相加或 矩吟 来法草签,西个或两个可除矩阵相除(AB表示矩阵A乘以矩阵B的逆 乘幂运算符,数的方幂或一个方阵的多少次力 左除运算符,两个数相除(b表示b÷a)或两个可除矩阵相除(AB表示矩阵B乘以矩阵A 的逆 两个同 矩阵对应 无素相 两个阵中各 素的多少次方 关系运算符主要用于比较数、字符串、矩阵之间的大小或不等关系,其返回值是0或1,如表5所示 表5关系运算符 运算符 功能说明 运算符 功能说明 新大干关系 新大千等千关系 判断小于关系 判断小于等于关系 判断等于关系 判断不等于关系 说明:如果A和B都为矩阵,则A和B必须具有相同的维数,运算时将A中的元素和B中对应元素 进行比较,如果关系成立,则在输出矩阵的对应位置输出1,反之输出0如果比较的其中 个为数另一1 矩阵的所有元素进行比较.无论何种情况,返回结果都是与运算的矩阵具有相 3 表6罗辑标算符 云销许 功能 运算符 功能 与运算 非运算
4 s 保存为 qiuhe.m(M 文件名),然后在命令窗口中执行,得结果. >> qiuhe s = 5050 (2) 函数文件 函数文件是另一种形式的 M 文件,它的第一句可执行语句是以 function 引导的定义语句.在函数文件中 的变量都是局部变量,它们在函数执行过程中驻留在内存中,在函数执行结束时自动清除.函数文件不仅具 有命令文件的功能,更重要的是它提供了与其他 Matlab 函数和程序的接口,因此功能更强大. Matlab 函数文件的格式为 function[返回参数 1,参数 2,.]=函数名(输入参数 1,参数 2,.) 函数体 例如,定义函数 3 3 f x y x y xy ( , ) 3 = + − ,并计算 f (2,3) ,建立一个 M 文件,在编辑器中写出如下程 序: function f=a(x,y) %函数名为 a,返回值为 f f=x^3+y^3-3*x*y; %这是函数主体 保存为 a.m(文件名与函数名一致),然后在命令窗口中执行,得到如下结果 >> a(2,3) ans =17 三、运算符与操作符 1.运算符 Matlab 中的运算符可分为 3 类,它们分别是算术运算符、关系运算符与逻辑运算符. (1) 算术运算符 算术运算符是构成运算的最基本的操作命令,可以在 Matlab 的命令窗口中直接运行,如表 4 所列. 表 4 算术运算符 运算符 功能说明 + 加法运算符,两个数相加或两个同维矩阵相加 - 减法运算符,两个数相减或两个同维矩阵相减 * 乘法运算符,两个数相乘或两个可乘矩阵相乘 / 除法运算符,两个数或两个可除矩阵相除(A/B 表示矩阵 A 乘以矩阵 B 的逆) ^ 乘幂运算符,数的方幂或一个方阵的多少次方 \ 左除运算符,两个数相除(a\b 表示 b÷a)或两个可除矩阵相除(A\B 表示矩阵 B 乘以矩阵 A 的逆) .* 点乘运算符,两个同维矩阵对应元素相乘 ./ 点除运算符,两个同维矩阵对应元素相除 .^ 点乘幂运算符,一个矩阵中各个元素的多少次方 .\ 点左除运算符,两个同维矩阵对应元素左除 (2) 关系运算符 关系运算符主要用于比较数、字符串、矩阵之间的大小或不等关系,其返回值是 0 或 1,如表 5 所示. 表 5 关系运算符 运算符 功能说明 运算符 功能说明 > 判断大于关系 >= 判断大于等于关系 < 判断小于关系 <= 判断小于等于关系 = = 判断等于关系 ~= 判断不等于关系 说明:如果 A 和 B 都为矩阵,则 A 和 B 必须具有相同的维数,运算时将 A 中的元素和 B 中对应元素 进行比较,如果关系成立,则在输出矩阵的对应位置输出 1,反之输出 0.如果比较的其中一个为数,另一个 为矩阵,则将这个数与另一个矩阵的所有元素进行比较.无论何种情况,返回结果都是与运算的矩阵具有相 同维数的由 0 和 1 组成的矩阵. (3) 逻辑运算符 逻辑运算符主要用于逻辑表达式和进行逻辑运算,参与运算的逻辑量以 0 代表“假”,以任意非 0 数代 表“真”.逻辑表达式和逻辑函数的值以 0 表示“假”,以 1 表示“真”,如表 6 所示. 表 6 逻辑运算符 运算符 功能 运算符 功能 & 与运算 ~ 非运算
或运算 Xor(ab) 异或运算 2操作符 Mab程序中,当标点或其他符号表示特定的操作功能时就称其为操作符,如表7所示 表?提作符 操作符 使用说明 :n表示生一个数组mm+1。,nm:k: n表示产生一个数组血,mk,n:A(:,j)表示 取矩阵A的第j列:A(,:)表示取矩阵A的第i行 在矩阵定义中表示一行的结束:在命令语句的结尾表示不显示这行语句的执行结果 四、矩阵及其运算 是 存 的基本单元。而矩阵的】 运算是Mabb语言的心,在Mb语言中几乎 的操 基础 的运 有行与列的橱 念, ()数组的输入 创建简单数组的方法如表8所示 表8创建简单数组的方法 用途 x=[a.b.c.d] 创建包含指定元素的行向量 x=a:b 创建从a开始,加1计算,到b结束的行向量 x=a:i:b 到b b.n) 素的访 表示访问数组x的第个元素 :)表示访问数组x的从第s个元素开始,以步长为h到第t个元素(但不 超过t),h可以为负数 ,h缺省时系统默认值为1 (31数与数组的运镜 数与数组的加、减、乘、除、乘方运算是数组的每个元素与该数施以相应的加、减、乘、除、乘方运 算,如表9所示 表9数与数组的运算 表达式 运算结果说明 =l+c,a2cmq,即数组a的每个元素 或a心 an afc ,即数组a的每个元素的c次幂 c.^a =ca1.c2.c^anl,即以c为底,以数组a的每个元素为指数的幂 其中=ala2,.,an]是数组,c为数 (④)数组与数组的运算 数组与数组的运算要求数组维数是相同的,其加、减、乘、除、幂运算可按元素对元素方式进行,不 同维数的数组不能进行运算,如表10所 表10数组与数组的运算 表达式 运算结果 =a1+b1,a2+b2 .an+bn], 即数 与b 应元素相加 a/h 即数的对应元素相 alb =-fb1a1,b2/a2, 组与。的过应元表相 ab a1b1,a2b2,ambn,即数组a与b的对应元素的幂 dot(ab) 数组a与b的内形 cross(ab) 数组a与b的外形 其中a=al,a2,an],b=[bl,b2,.,bn]
5 | 或运算 Xor(a,b) 异或运算 2.操作符 Matlab 程序中,当标点或其他符号表示特定的操作功能时就称其为操作符,如表 7 所示. 表 7 操作符 操作符 使用说明 : m:n 表示产生一个数组[m,m+1,.,n];m:k:n 表示产生一个数组[m,m+k,.n];A(:,j)表示 取矩阵 A 的第 j 列;A(i,:)表示取矩阵 A 的第 i 行 ; 在矩阵定义中表示一行的结束;在命令语句的结尾表示不显示这行语句的执行结果 . 一个命令语句较长一行写不完,可以分几行写,在行的末尾加上.,表示是一个命令语句 % 在编程时引导注释行,系统解释执行程序时,%后面的内容不作处理 四、矩阵及其运算 矩阵是 Matlab 数据存储的基本单元,而矩阵的运算是 Matlab 语言的核心,在 Matlab 语言中几乎一切 运算均是以对矩阵的操作为基础的.只有一行的矩阵又称为数组或向量,但在 Matlab 中数组没有行与列的概 念,其运算多为元素间的运算,这点与矩阵有不同之处,因此下面分别介绍数组与矩阵的运算. 1.数组的输入与运算 (1) 数组的输入 创建简单数组的方法如表 8 所示. 表 8 创建简单数组的方法 命令 用途 x=[a,b,c,d] 创建包含指定元素的行向量 x=a:b 创建从 a 开始,加 1 计算,到 b 结束的行向量 x=a:i:b 创建从 a 开始,加 i 计算,到 b 结束的行向量 x=linspace(a,b,n) 创建从 a 开始,到 b 结束,有 n 个元素的行向量 (2) 数组元素的访问 访问一个元素:x(i)表示访问数组 x 的第 i 个元素. 访问一系列元素:x(s:h:t)表示访问数组 x 的从第 s 个元素开始,以步长为 h 到第 t 个元素(但不 超过 t),h 可以为负数,h 缺省时系统默认值为 1. (3) 数与数组的运算 数与数组的加、减、乘、除、乘方运算是数组的每个元素与该数施以相应的加、减、乘、除、乘方运 算,如表 9 所示. 表 9 数与数组的运算 表达式 运算结果说明 a+c =[a1+c,a2+c,.,an+c],即数组 a 的每个元素加上 c a*c 或 a.*c =[a1*c,a2*c,.,an*c],即数组 a 的每个元素乘以 c a/c 或 a./c =[a1/c,a2/c,.,an/c],即数组 a 的每个元素除以 c a.\c =[ c/a1,c/a2,.,c/an],即 c 除以数组 a 的每个元素 a.^c =[a1^c,a2^c,.,an^c],即数组 a 的每个元素的 c 次幂 c.^a =[ c^a1,c^a2,.,c^an],即以 c 为底,以数组 a 的每个元素为指数的幂 其中 a=[a1,a2,.,an]是数组,c 为数 (4)数组与数组的运算 数组与数组的运算要求数组维数是相同的,其加、减、乘、除、幂运算可按元素对元素方式进行,不 同维数的数组不能进行运算,如表 10 所示. 表 10 数组与数组的运算 表达式 运算结果说明 a+b =[a1+b1,a2+b2,.,an+bn],即数组 a 与 b 的对应元素相加 a.*b =[a1*b1,a2*b2,.,an*bn],即数组 a 与 b 的对应元素相乘 a./b =[a1/b1,a2/b2,.,an/bn],即数组 a 与 b 的对应元素相除 a.\b =[ b1/a1,b2/a2,.,bn/an],即数组 b 与 a 的对应元素相除 a.^b =[a1^b1,a2^b2,.,an^bn],即数组 a 与 b 的对应元素的幂 dot(a,b) 数组 a 与 b 的内积 cross(a,b) 数组 a 与 b 的外积 其中 a=[a1,a2,.,an],b=[b1,b2,.,bn]
2.矩阵的输入与运算 (1)矩阵的输入 1)直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素具体方法为:将矩阵的元素用方括号括起来, 按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号或回车键分 隔输入矩阵时,严格要求所有行有相同的列数例如 >A=[2,3,5:1,3,5,6,9,4] A= 235 135 694 2)外部文件读入法 Matlab语言允许用户调用在Matlab环境之外定义的矩阵.可以用任意的文本编辑器编辑所要作用的矩 阵,矩阵元素之间以特定分断符分开,并按行列布置利用load函数调用数据文件,其调用格式为“load文 件名[参数]” load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不 给定文件名,则将自动认为matlab.mat文件为操作对象.如果该文件在Matlab搜索路径中不存在时,系统将 会报错, (2)特殊矩阵的建立 对于一些比较特殊的矩阵(如单位阵、矩阵中含1或0较多),由于其具有特殊的结构,Matlab提供了 些函数用于生成这些矩阵,如表11所示 表11生成特殊矩阵的命令函数 命令函数 功能 a=[] 生成空矩阵,空矩阵的大小为零 b=zeros(m,n) 生成一个m行,n列的零矩阵 c=ones(m,n) 生成一个m行,n列的元素全为1的矩阵 d=eye(m.n) 生成一个m行,n列的单位矩阵 rand(m) 生成m阶均匀颁的随机方阵 randn(m) 生成m阶正态分布的随机方阵 (3)矩阵中元素或分块的操作 对矩阵中元素或分块的常用操作,如表12所示 表12矩阵中元素或分块的常用操作 表达式或命令函数 功能 A(k,:) 提取矩阵A的第k行 A(:,k) 提取矩阵A的第k列 A(:) 依次提取矩阵A的每一列,将矩阵A拉伸为一个列向量 A(il:i2,ji:j2) 提取矩阵A的第1到2行、第j1到2列,构成新矩阵 A([a b cd], 提取矩阵A的指定的第a,b,c,d行,构成新矩阵 A(:,[efghl) 提取矩阵A的指定的第e,fg,h列,构成新矩阵 [AB]或[A:B] 将矩阵A和B拼接成新矩阵 A' 矩阵A的转置 (④)矩阵的基本数学运算 矩阵的基本数学运算包括矩阵的四则侧运算、与常数的运算、逆运算、行列式运算、秩运算、特征值运 算等基本函数运算其中矩阵的四则运算与数组四则运算方法几乎相同,但计算时要满足其数学要求(如同 型矩阵才可以加、减)另外矩阵的函数运算是矩阵运算中最常用的,主要的函数如表13所示 表13矩阵的函数运算命令 命令 功能 det(A) 求矩阵A的行列式 inv(A) 求方阵A的逆矩阵 size(A) 求矩阵A的阶数 rank(A) 求矩阵A的秩 eig(A) 求矩阵A的特征值及特征向量 6
6 2.矩阵的输入与运算 (1) 矩阵的输入 1) 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素.具体方法为:将矩阵的元素用方括号括起来, 按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号或回车键分 隔.输入矩阵时,严格要求所有行有相同的列数.例如 >>A=[2,3,5;1,3,5;6,9,4] A= 2 3 5 1 3 5 6 9 4 2) 外部文件读入法 Matlab 语言允许用户调用在 Matlab 环境之外定义的矩阵.可以用任意的文本编辑器编辑所要作用的矩 阵,矩阵元素之间以特定分断符分开,并按行列布置.利用 load 函数调用数据文件,其调用格式为“load 文 件名[参数]”. load 函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不 给定文件名,则将自动认为 matlab.mat 文件为操作对象.如果该文件在 Matlab 搜索路径中不存在时,系统将 会报错. (2) 特殊矩阵的建立 对于一些比较特殊的矩阵(如单位阵、矩阵中含 1 或 0 较多),由于其具有特殊的结构,Matlab 提供了 一些函数用于生成这些矩阵,如表 11 所示. 表 11 生成特殊矩阵的命令函数 命令函数 功能 a=[ ] 生成空矩阵,空矩阵的大小为零 b=zeros(m,n) 生成一个 m 行,n 列的零矩阵 c=ones(m,n) 生成一个 m 行,n 列的元素全为 1 的矩阵 d=eye(m,n) 生成一个 m 行,n 列的单位矩阵 rand(m) 生成 m 阶均匀颁的随机方阵 randn(m) 生成 m 阶正态分布的随机方阵 (3) 矩阵中元素或分块的操作 对矩阵中元素或分块的常用操作,如表 12 所示. 表 12 矩阵中元素或分块的常用操作 表达式或命令函数 功能 A(k,:) 提取矩阵 A 的第 k 行 A(:,k) 提取矩阵 A 的第 k 列 A(:) 依次提取矩阵 A 的每一列,将矩阵 A 拉伸为一个列向量 A(i1:i2,ji:j2) 提取矩阵 A 的第 i1 到 i2 行、第 j1 到 j2 列,构成新矩阵 A([a b c d],:) 提取矩阵 A 的指定的第 a,b,c,d 行,构成新矩阵 A(:,[e f g h]) 提取矩阵 A 的指定的第 e,f,g,h 列,构成新矩阵 [A B]或[A:B] 将矩阵 A 和 B 拼接成新矩阵 A’ 矩阵 A 的转置 (4) 矩阵的基本数学运算 矩阵的基本数学运算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算、秩运算、特征值运 算等基本函数运算.其中矩阵的四则运算与数组四则运算方法几乎相同 ,但计算时要满足其数学要求(如同 型矩阵才可以加、减).另外矩阵的函数运算是矩阵运算中最常用的,主要的函数如表 13 所示. 表 13 矩阵的函数运算命令 命令 功能 det(A) 求矩阵 A 的行列式 inv(A) 求方阵 A 的逆矩阵 size(A) 求矩阵 A 的阶数 rank(A) 求矩阵 A 的秩 eig(A) 求矩阵 A 的特征值及特征向量