




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1MatlabMatlab在电气工在电气工程中的应用程中的应用信控学院电气工程系信控学院电气工程系2课程安排课程安排J学时:学时:32学时学时J安排:讲课安排:讲课24学时,上机学时,上机8学时学时J考核要求:不得缺勤,实验报告必须考核要求:不得缺勤,实验报告必须齐备(齐备(实验不及格,则课程不及格实验不及格,则课程不及格)。)。J考核方式:考试考核方式:考试3 学习内容学习内容一、一、MATLABMATLAB概述概述二、二、MATLABMATLAB的数值运算、符号运算的数值运算、符号运算三、三、MATLABMATLAB的二维、三维绘图的二维、三维绘图四、四、MATLABMATLAB程序设计程
2、序设计五、五、MATLABMATLAB仿真仿真4第第1章章 MATLAB概述概述MATLAB简介简介MATLAB启动与退出启动与退出MATLAB主体界面主体界面MATLAB帮助系统帮助系统51.1 MATLAB简介简介 MATLAB是一种功能十分强大、运算效率很高是一种功能十分强大、运算效率很高的工具软件,的工具软件,MATLAB为为Matrix Laboratory的缩写,的缩写,本意矩阵实验室。在本意矩阵实验室。在1980年由美国学者克利夫年由美国学者克利夫莫勒莫勒(Cleve Moler)编制。特别适合线性代数运算。)编制。特别适合线性代数运算。(Math Works软件公司)同其他高级
3、语言相比,其软件公司)同其他高级语言相比,其具有很多优点:具有很多优点:1. 容易使用容易使用2. 丰富的内部函数丰富的内部函数3. 强大的图形和符号功能强大的图形和符号功能4. 与其他软件和语言有良好的对接性与其他软件和语言有良好的对接性61.2 MATLAB启动与退出启动与退出1.2.1 MATLAB的启动的启动1.2.2 MATLAB的退出的退出1. 利用利用MATLAB菜单退出菜单退出 单击单击File菜单,从中选择菜单,从中选择Exit MATLAB。2. 使用使用quit/exit语句退出语句退出 在指令窗口直接输入在指令窗口直接输入quit/exit即可。即可。3. 使用热键退出
4、使用热键退出 在在MATLAB窗口中同时按下窗口中同时按下Ctrl+Q即可。即可。4. 单击窗口单击窗口 可直接退出可直接退出71.3 MATLAB主体界面主体界面菜单栏菜单栏工具栏工具栏工作区工作区窗口窗口指令历史指令历史窗口窗口指令窗口指令窗口81.4 MATLAB帮助系统帮助系统1.4.1 帮助窗口帮助窗口1. 帮助窗口的起动帮助窗口的起动2. 帮助窗口的内容帮助窗口的内容帮助主题(帮助主题(Contents)帮助索引(帮助索引(Index)帮助查询(帮助查询(Search)联机演示(联机演示(Demos)1.4.2 命令窗口查询帮助命令窗口查询帮助1. help+函数名函数名2. lo
5、okfor+关键字关键字92.2MATLAB的基本组成和特点的基本组成和特点2.2 .1 MATLAB的语言部分的语言部分1.特点特点(1)具有强大的矩阵运算能力:)具有强大的矩阵运算能力:Matrix Laboratory(矩阵实验室),使得矩阵运算非常简(矩阵实验室),使得矩阵运算非常简单。单。(2)MATLAB是一种演算式语言是一种演算式语言MATLAB的基本数据单元是既不需要指定维的基本数据单元是既不需要指定维数,也不需要说明数据类型的矩阵(向量和标量为数,也不需要说明数据类型的矩阵(向量和标量为矩阵的特例),而且数学表达式和运算规则与通常矩阵的特例),而且数学表达式和运算规则与通常的
6、习惯相同。的习惯相同。 因此因此MATLAB语言编程简单,使用方便。语言编程简单,使用方便。102.2 .2 MATLAB软件系统的构成软件系统的构成 MATLAB软件主要由软件主要由组成。组成。 MATLAB主包包括以下五部分:主包包括以下五部分: (1)MATLAB 语言:程序设计语言:程序设计 (2)MATLAB工作环境:集成工具和程序工作环境:集成工具和程序 (3)句柄图形:)句柄图形: 实现二维、三维数据可视化实现二维、三维数据可视化 (4)数学函数库:数学算法集合:正弦、求和、)数学函数库:数学算法集合:正弦、求和、复数复数 (5)应用程序接口:用于同)应用程序接口:用于同C、FO
7、RTAN等其它等其它高级语言交互的库。高级语言交互的库。 112.2 .3 MATLAB的图视系统的图视系统MATLAB的图形可视能力在所有数学软件中是的图形可视能力在所有数学软件中是首屈一指的。首屈一指的。MATLAB的图形系统有高层和低层两的图形系统有高层和低层两个部分组成。高层指令友善、简便;低层指令细腻、个部分组成。高层指令友善、简便;低层指令细腻、丰富、灵活。丰富、灵活。 MATLAB有比较完备的图形标识指令。有比较完备的图形标识指令。2.2 .4 MATLAB与外部程序的交互与外部程序的交互 出现了诸如出现了诸如Mediva等商品软件,能把等商品软件,能把MATLAB的的M文件转变
8、为独立于平台的文件转变为独立于平台的EXE可执行文件,出可执行文件,出现了许多专用软件把现了许多专用软件把MATLAB直接当计算引擎使用。直接当计算引擎使用。12第第2章章 MATLAB的基本使用方法的基本使用方法 基本概念基本概念 基本运算基本运算 MATLAB的数据类型的数据类型 常用函数常用函数 标点符号的使用标点符号的使用 常用操作命令和键盘技巧常用操作命令和键盘技巧132.1 基本概念基本概念 在在MATLAB中,经常用到标量、向量、矩阵和数组中,经常用到标量、向量、矩阵和数组的概念。无论在的概念。无论在MATLAB中变量赋何值,在内存中均以中变量赋何值,在内存中均以矩阵矩阵的形式存
9、在。的形式存在。标量标量:是:是11矩阵,即只含有一个数的矩阵矩阵,即只含有一个数的矩阵向量向量:是:是1n或或n1的矩阵,即只有一行或一列的矩的矩阵,即只有一行或一列的矩阵阵矩阵矩阵:是一个矩形数组,即二维数组,其中向量和标:是一个矩形数组,即二维数组,其中向量和标量都是矩阵的特例,量都是矩阵的特例,00矩阵为空矩阵矩阵为空矩阵数组数组:数组为矩阵的延伸,其中矩阵和向量都是数组:数组为矩阵的延伸,其中矩阵和向量都是数组的特例的特例142.2 基本运算基本运算 MATLAB最主要的功能便是数值计算,主要有以最主要的功能便是数值计算,主要有以下基本运算符号:下基本运算符号:符号符号功能功能实例实
10、例+加法加法2+3-减法减法2-3*乘法乘法2*3/、除法除法2/3、23乘方乘方2315 1. MATLAB语句有两种常见的形式语句有两种常见的形式 (1)表示式)表示式 (2)变量)变量=表达式表达式 在第一种情况下,计算结果自动赋给名为在第一种情况下,计算结果自动赋给名为ans(answer)的变量;在第二种情况下,结果自动赋给)的变量;在第二种情况下,结果自动赋给等号左边的变量。等号左边的变量。2. MATLAB的求值次序的求值次序 (1)算式从左到右执行;)算式从左到右执行; (2)乘方的优先级最高,乘、除次之,最后是加)乘方的优先级最高,乘、除次之,最后是加减,括号的优先级别最高;
11、减,括号的优先级别最高; (3)在有多层括号的情况下,从括号的最里面到)在有多层括号的情况下,从括号的最里面到最外面逐渐扩展。最外面逐渐扩展。162.3 MATLAB的数据类型的数据类型1. 常量常量 在在MATLAB中有一些特定的变量,已被预定义某中有一些特定的变量,已被预定义某个特定的值,因此这些变量被称为个特定的值,因此这些变量被称为常量(预定义变常量(预定义变量)量)。ans用作结果的默认变量用作结果的默认变量i、j复数单位复数单位pi圆周率(圆周率()nargout函数输出参数个数函数输出参数个数eps浮点数相对误差浮点数相对误差realmin最小正浮点数最小正浮点数inf无穷大无穷
12、大realmax最大正浮点数最大正浮点数NaN、nan不定数不定数bitmax最大正整数最大正整数172. 变量变量 在程序执行过程中其值可以变化的量为在程序执行过程中其值可以变化的量为变量变量,变量,变量在计算机中占有一定的存储单元,在该单元内存放该变在计算机中占有一定的存储单元,在该单元内存放该变量的值。量的值。 MATLAB对于变量命名有以下规则:对于变量命名有以下规则:MATLAB不需对变量进行事先说明及指定类型;不需对变量进行事先说明及指定类型;变量名长度不超过变量名长度不超过63位字符(英文字母、数字、下划位字符(英文字母、数字、下划线);线);变量名区分大小写;变量名区分大小写;
13、变量名必须以字母开头,变量名中可以包含字母、数变量名必须以字母开头,变量名中可以包含字母、数字和下划线,但不得出现标点符号;字和下划线,但不得出现标点符号;关键字不能作为变量名。关键字不能作为变量名。18(1)who和和whos who和和whos都用来列出都用来列出matlab工作区中已驻留的变工作区中已驻留的变量清单,但不可显示常量,而量清单,但不可显示常量,而whos还可以列出变量的维还可以列出变量的维数和性质。数和性质。例例: who Your variables are: a b whos Name Size Bytes Class a 1x801 6408 double array
14、 b 1x801 6408 double array Grand total is 1602 elements using 12816 bytes(2)clear clear用来清除工作区中的所有变量或部分变量,也用来清除工作区中的所有变量或部分变量,也可用来恢复常量的原值。可用来恢复常量的原值。例例: clear a b193. 复数复数 MATLAB语言对复数的处理十分简单,在处理复语言对复数的处理十分简单,在处理复数问题时,不需进行其他任何附加操作。定义复数格式数问题时,不需进行其他任何附加操作。定义复数格式如下:如下:z=a+bi 或或 z=a+bjz=a+b*i 或或 z=a+b*j
15、 a=2+3i a = 2.0000 + 3.0000i a=2+3j a = 2.0000 + 3.0000i b=2+3*i b = 2.0000 + 3.0000i b=2+3*j b = 2.0000 + 3.0000i a=1a = 1 b=1b = 1 c=a+bi? Undefined function or variable bi.注意注意:只有数字才可以与:只有数字才可以与i、j直接相连,表达式则不可以,直接相连,表达式则不可以,应用应用“*”相连。相连。204.数值显示格式数值显示格式 任何任何MATLAB语句的执行结果都可以在屏幕上显示,同时语句的执行结果都可以在屏幕上显
16、示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由,数据的显示格式由format命令控制。命令控制。 Format只是影响结果的显示,不影响其计算与存储;只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。总是以双字长浮点数(双精度)来执行所有的运算。 如果结果为整数,则显示没有小数;如果结果不是整数,则如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有:输出形式有:format (short):短格式(短格式(5位定点数)位定点数)99.1253
17、 format long:长格式(长格式(15位定点数位定点数 ) 99.12345678900000 format short e:短格式短格式e方式方式 9.9123e+001 format long e:长格式长格式e方式方式 9.912345678900000e+001 format bank: 2位十进制位十进制 99.12 format hex:十六进制格式十六进制格式214. 数据的输出格式数据的输出格式 在在MATLAB系统中,数据的存储和计算都是以双系统中,数据的存储和计算都是以双精度进行的,但是用户可以改变屏幕上显示的格式,所精度进行的,但是用户可以改变屏幕上显示的格式,所
18、用指令为用指令为format。formatformat short小数点后小数点后4位有效位有效数字,大于数字,大于1000的实数用科学记数的实数用科学记数法表示法表示format long g选择选择15位定点和位定点和15位科学记数法中更位科学记数法中更好的进行表示好的进行表示format long15位定点数表示位定点数表示format hex使用使用16进制进行表进制进行表示示format short e5位科学记数法表位科学记数法表示示format bank用元、角、分进行用元、角、分进行表示表示format long e15位科学记数法表位科学记数法表示示format +显示大矩阵
19、用,正、显示大矩阵用,正、负、零分别用负、零分别用+、-、空格表示空格表示format short g选择选择5位定点和位定点和5位位科学记数法中更好科学记数法中更好的进行表示的进行表示format rationalformat rat用分式表示用分式表示222.4 MATLAB的的常用函数常用函数 MATLAB提供了丰富的函数,只要正确调用,便提供了丰富的函数,只要正确调用,便可获得正确结果。可获得正确结果。sin正弦正弦angle相角相角asin反正弦反正弦conj共轭复数共轭复数cos余弦余弦imag取复数虚部取复数虚部acos反余弦反余弦real取复数实部取复数实部tan正切正切fix
20、取整数取整数atan反正切反正切mod取余数取余数exp指数运算指数运算round四舍五入四舍五入log自然对数自然对数sqrt平方根平方根log10以以10为底对数为底对数abs绝对值绝对值231. 三角函数三角函数 sin、cos、tan、cot(余切)、(余切)、asin、acos、atan、acot(反余切)(反余切)注意事项注意事项:小写!小写!函数应该出现在等式的右边。函数应该出现在等式的右边。表达式写在(表达式写在( )里,例)里,例sin(x),其余运算和数学一,其余运算和数学一样。样。三角函数以三角函数以弧度弧度为单位计算。为单位计算。例如例如: sin(1)表示的不是表示的
21、不是sin1而是而是sin57.28578242. 指数运算函数指数运算函数 exp、log、log10、log2、sqrt、power(求幂)(求幂)例例:设设a=5.67,b=7.8,求,求 a=5.67; b=7.8; exp(a+b)/log10(a+b)ans = 6.2677e+005 log(b-a)ans = 0.7561baabbaeba)ln()lg(、 power(a,b)ans = 7.5500e+005253. 复数运算函数复数运算函数 abs、angle、real、imag、conj、complex例例: x=1+2i; abs(x)ans = 2.2361 ang
22、le(x)ans = 1.1071 real(x)ans = 1 imag(x)ans = 2 conj(x)ans = 1.0000 - 2.0000i y=complex(1,2)y = 1.0000 + 2.0000i264. 取整求余函数取整求余函数 fix、round、floor、ceil、mod、rem、sign floor(x) (取小整)取小整)ans = 9 x=9.4; ceil(x)ans = 10 floor(x)ans = 9例例: x=9.8; fix(x)(舍掉小数)舍掉小数)ans = 9 round(x)(四舍五入)(四舍五入)ans = 10 ceil(x)
23、(取大整(取大整)ans = 1027a = -1.9, -0.2, 3.4, 5.6, 7.0, 2.4+3.6ifix(a) (舍掉小数)舍掉小数)ans = Columns 1 through 5 -1.0000 0 3.0000 5.0000 7.0000 Column 6 2.0000 + 3.0000i floor(a) (取小整)取小整)ans = Columns 1 through 5 -2.0000 -1.0000 3.0000 5.0000 7.0000 Column 6 2.0000 + 3.0000i28mod:不管:不管“被除数被除数”是正是负,是正是负,“余数余数”
24、的符号与的符号与“除数除数”的符号相同的符号相同 mod(5,2) mod(-5,2)ans =1 ans =1 mod(5,-2) mod(-5,-2)ans =-1ans =-1rem:不管:不管“除数除数”是正是负,是正是负,“余数余数”的符号与的符号与“被除数被除数”的符号相同的符号相同 rem(5,2) rem(5,-2) ans =1ans =1 rem(-5,2) rem(-5,-2)ans =-1ans =-1 29 x=9; y=2; rem(x,y)ans = 1 mod(x,y)ans = 1 rem(9,-4)ans = 1 mod(9,-2)ans = -1 sign
25、(9)ans = 1 sign(-9)ans = -1 sign(0)ans = 030例例:计算下式的结果,其中:计算下式的结果,其中x=-3.5,y=6.7。|)cos(|)|sin(|yxyx x=-3.5*pi/180; y=6.7*pi/180; sin(abs(x)+abs(y)/sqrt(cos(abs(x+y)ans = 0.177231标点符号标点符号定定 义义标点符号标点符号定定 义义;区分行,取消运行显示等区分行,取消运行显示等.小数点小数点,区分列,函数参数分隔符等区分列,函数参数分隔符等连接语句连接语句:在数组中应用较多在数组中应用较多字符串的标识符号字符串的标识符号
26、( )指定运算优先级等指定运算优先级等=赋值符号赋值符号 矩阵定义的标志等矩阵定义的标志等!调用操作系统运算调用操作系统运算 用于构成单元数组等用于构成单元数组等%注释语句的标识注释语句的标识2.5 MATLAB的的标点符号标点符号 MATLAB提供了丰富的函数,只要正确调用,便提供了丰富的函数,只要正确调用,便可获得正确结果。可获得正确结果。322.6 常用操作命令和键盘技巧常用操作命令和键盘技巧 在使用在使用MATLAB编制程序时,掌握一些常用的操编制程序时,掌握一些常用的操作命令和键盘操作技巧,可以起到事倍功半的效果。作命令和键盘操作技巧,可以起到事倍功半的效果。常用操作指令常用操作指令
27、cd显示或改变工作目录显示或改变工作目录clf清除图形窗口清除图形窗口clc清除工作窗清除工作窗dir显示当前目录下文件显示当前目录下文件常用键盘操作和快捷键常用键盘操作和快捷键(Ctrl+p)调用上一行调用上一行Home(Ctrl+a)光标置于行首光标置于行首 (Ctrl+n)调用下一行调用下一行End(Ctrl+e)光标置于行尾光标置于行尾Ctrl+光标左移一单词光标左移一单词Alt+BackSpace回复上一次删除回复上一次删除Ctrl+光标右移一单词光标右移一单词Ctrl+c终止当前指令终止当前指令33(1)方向键和控制键可以编辑修改已输入的命令)方向键和控制键可以编辑修改已输入的命令
28、 :回调上一行命令;:回调上一行命令; :回调下一行命令;:回调下一行命令;(2)命令窗口的分页输出)命令窗口的分页输出more off:不允许分页:不允许分页 more on:允许分页;:允许分页;more(n):指定每页输出的行数;:指定每页输出的行数; 回车前进一行,空格键显示下一页,回车前进一行,空格键显示下一页,q结束当前显示。结束当前显示。(3)多行命令()多行命令()如果命令语句超过一行或者太长希望分行输入,如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。则可以使用多行命令继续输入。S=1-12+13+4+ 9-4-18; 34第第3章章 MATLAB的数值
29、计算的数值计算 矩阵的构建矩阵的构建 矩阵元素矩阵元素 矩阵运算矩阵运算 矩阵的关系运算和逻辑运算矩阵的关系运算和逻辑运算 多项式运算多项式运算353.1 矩阵的构建矩阵的构建3.1.1 直接输入创建矩阵直接输入创建矩阵 创建矩阵最简单的方法就是直接输入矩阵元素,输创建矩阵最简单的方法就是直接输入矩阵元素,输入格式有以下的要求:入格式有以下的要求:整个矩阵以整个矩阵以“ ”作为首尾;作为首尾;行与行之间用分号行与行之间用分号“;”或回车键分隔;或回车键分隔;每行中的元素用每行中的元素用“,”或空格分隔;或空格分隔;矩阵中的元素可以是数字或者表达式;矩阵中的元素可以是数字或者表达式;如果矩阵中没
30、有元素,这样的矩阵称为空阵(如果矩阵中没有元素,这样的矩阵称为空阵(Empty Matrix)。)。36【例例1】矩阵的分行输入矩阵的分行输入A=1, 2, 3 4, 5, 6 7, 8, 9 显示结果如下:显示结果如下:A = 1 2 3 4 5 6 7 8 9 a=1; b=2; c=3;x=5 b c; a*b a+c c/bx= 5.000 2.000 3.000 2.000 4.000 1.500【例例2】命令窗口中输入命令窗口中输入y=2 4 5;3 6 8 y= 2 4 5 3 6 837 a=1 2 3;4 5 6;7 8 9a = 1 2 3 4 5 6 7 8 9 b=1
31、sin(pi/6) sqrt(9)3+5 6 0b = 1.0000 0.5000 3.0000 8.0000 6.0000 0383.1.2 利用内部函数产生矩阵利用内部函数产生矩阵 1. 利用内部函数可以很容易生成一些常见的特殊矩利用内部函数可以很容易生成一些常见的特殊矩阵,常用函数如下:阵,常用函数如下:eye(m,n)产生单位矩阵产生单位矩阵zeros(m,n)产生元素全为产生元素全为0的矩阵的矩阵ones(m,n)产生元素全为产生元素全为1的矩阵的矩阵rand(m,n)产生均匀分布的随机元素矩阵,范围产生均匀分布的随机元素矩阵,范围01randn(m,n)产生正态分布的随机元素矩阵产
32、生正态分布的随机元素矩阵diag(x)产生矩阵产生矩阵x的对角阵的对角阵说明说明:当:当eye、zeros、ones、rand、randn函数函数只有一个参数只有一个参数n时,则产生时,则产生nn的方阵。的方阵。39 eye(3)ans = 1 0 0 0 1 0 0 0 1 eye(3,4)ans = 1 0 0 0 0 1 0 0 0 0 1 0 zeros(3)ans = 0 0 0 0 0 0 0 0 0 ones(3,4)ans = 1 1 1 1 1 1 1 1 1 1 1 1 a=magic(3)a = 8 1 6 3 5 7 4 9 2 diag(a)ans = 8 5 240
33、例如:例如:eye(2,3)ans= 1 0 0 0 1 0zeros(2,3)ans= 0 0 0 0 0 0ones(2,3)ans= 1 1 1 1 1 1eye(2)ans= 1 0 0 1zeros(2)ans= 0 0 0 0ones(2)ans= 1 1 1 1413.1.3 数组的构建数组的构建 在在MATLAB中数组可以看作行向量,即只有一行中数组可以看作行向量,即只有一行的矩阵,的矩阵,MATLAB创建数组可用以下特殊命令:创建数组可用以下特殊命令:1. 冒号生成法(冒号生成法(初值:步长:终值初值:步长:终值) 0:0.4:2ans = 0 0.4000 0.8000 1
34、.2000 1.6000 2.0000初值初值=0,终值,终值=2,步长,步长=0.4,步长若省略,默认间隔,步长若省略,默认间隔1 a=1:4;b=1:2:7; c=a bc = 1 2 3 4 1 3 5 7 d=a 9 10d = 1 2 3 4 9 10422. linspace函数函数 linspace(a,b,n)差值差值=(b-a)/(n-1) a=linspace(0,1,4)a = 0 0.3333 0.6667 1.0000初值初值=0,终值,终值=1,元素个数,元素个数=43. logspace函数函数 logspace(a,b,n)公比公比=10(b-a)/(n-1)
35、logspace(0,2,5)ans = 1.0000 3.1623 10.0000 31.6228 100.0000初值初值=100,终值,终值=102,元素个数,元素个数=5,公比,公比=100.53.1.4 从外部的数据文件中导入矩阵从外部的数据文件中导入矩阵433.2 矩阵的元素矩阵的元素3.2.1 矩阵元素的下标表示矩阵元素的下标表示 1. 全下标表示全下标表示 一个一个mn矩阵矩阵A的第的第i行,第行,第j列元素表示为列元素表示为A(i,j),即由行下标和列下标表示,行列数从即由行下标和列下标表示,行列数从1开始。开始。注意注意:当给元素赋值时,如果超出矩阵范围,则自动扩:当给元素
36、赋值时,如果超出矩阵范围,则自动扩充矩阵;当取值时,若超出矩阵范围,则提示错误。充矩阵;当取值时,若超出矩阵范围,则提示错误。 a=1 2;3 4; a(1,2)=9; a(2,3)=8; aa = 1 9 0 3 4 8 a(2,4)? Index exceeds matrix dimensions.442. 单下标表示单下标表示 将矩阵的所有列按从左到右的顺序接成将矩阵的所有列按从左到右的顺序接成“一维长一维长列列”,然后对元素进行编号。一个,然后对元素进行编号。一个mn矩阵矩阵A的元素的元素A(i,j)对应的下标为对应的下标为(j-1)*m+i。 a=1 2 3;4 5 6; a(1,2
37、)ans = 2 a(3)ans = 2 a(5)=10a = 1 2 10 4 5 6453.2.2 子矩阵子矩阵 1. 全下标表示全下标表示(1)a(i j, k l) :行数为:行数为i、j,列数为,列数为k、l的元素构的元素构成子矩阵成子矩阵(2)a(i:j, k:l) :取行数为:取行数为ij,列数为,列数为kl的元素构成的元素构成的子矩阵的子矩阵(3)a(i:j, :):取行数为:取行数为ij,所有列的元素构成的子矩,所有列的元素构成的子矩阵阵(4)a(end, k:j):取行数最大值,列数为:取行数最大值,列数为kj的元素构的元素构成的子矩阵成的子矩阵2. 单下标表示单下标表示a
38、(i j; k l):取单下标为:取单下标为i、j、k、l的元素构成子矩阵。的元素构成子矩阵。46 a=magic(5)a = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 a(1 2,3 4)ans = 1 8 7 14 a(1:2,3:5)ans = 1 8 15 7 14 16 a(1:2,:)ans = 17 24 1 8 15 23 5 7 14 16 a(end,1:2)ans = 11 18 a(1 3;4 5)(取单下标取单下标为为1、3、4、5的元素构的元素构成子矩阵成子矩阵)ans = 1
39、7 4 10 11473.2.3 矩阵元素的删除矩阵元素的删除 删除矩阵元素可以简单的将该元素赋值为空矩阵删除矩阵元素可以简单的将该元素赋值为空矩阵(用(用 表示)。表示)。 a=rand(3,4)a = 0.4565 0.4447 0.9218 0.4057 0.0185 0.6154 0.7382 0.9355 0.8214 0.7919 0.1763 0.9169 a(2)=(把第(把第2个元素赋值为空)个元素赋值为空)a = Columns 1 through 6 0.4565 0.8214 0.4447 0.6154 0.7919 0.9218 Columns 7 through 1
40、1 0.7382 0.1763 0.4057 0.9355 0.9169483.2.4 矩阵元素的数量矩阵元素的数量1. numel函数函数 n=numel(a):计算矩阵:计算矩阵a中元素的总数中元素的总数2. size函数函数d=size(a) :d=m n,m为为a的行数,的行数,n为为a的列数的列数m n=size(a): m为为a的行数,的行数,n为为a的列数的列数m=size(a,dim):m为矩阵为矩阵a的第的第dim维元素的数量(维元素的数量(1表表示行,示行,2表示列)表示列) a=rand(2,3)a = 0.2844 0.0648 0.5828 0.4692 0.9883
41、 0.4235 d=size(a)d = 2 3 m=size(a,2)(行元素的数(行元素的数量)量)m = 3 numel(a)ans = 6493.3 矩阵与数组运算矩阵与数组运算MATLAB算术运算算术运算矩阵算术运算矩阵算术运算数组算术运算数组算术运算矩阵算术运算矩阵算术运算:按照线性代数运算法则定义:按照线性代数运算法则定义数组算术运算数组算术运算:按照元素逐个执行:按照元素逐个执行503.3.1 矩阵的运算矩阵的运算 + 加法加法 - 减法减法 * 乘法乘法 幂幂 左除左除 / 右除右除 转置转置1. 矩阵的加减法矩阵的加减法 矩阵的加减法是对应元素的加减法,只有当两个矩阵的加减
42、法是对应元素的加减法,只有当两个矩阵维数相同或者其中一个为标量时,才可以进行加矩阵维数相同或者其中一个为标量时,才可以进行加减法运算。减法运算。 a=1 2;3 4; b=5 6;7 8; a+bans = 6 8 10 12 3+a (所有元素都加所有元素都加3)ans = 4 5 6 7 b-3(所有元素都减所有元素都减3)ans = 2 3 4 5512. 矩阵的乘法矩阵的乘法 矩阵的乘法使用矩阵的乘法使用“*”运算符,两个矩阵要相乘,运算符,两个矩阵要相乘,只有当前一矩阵的只有当前一矩阵的列数与后一矩阵行数列数与后一矩阵行数相等或者其中相等或者其中一个为标量时才能进行。一个为标量时才能
43、进行。 a=1 2;3 4; b=5 6 7;8 9 10; a*bans = 21 24 27 47 54 61 b*a? Error using = *Inner matrix dimensions must agree. 3*aans = 3 6 9 12523. 矩阵的除法矩阵的除法 矩阵的除法有左除和右除两种,分别用矩阵的除法有左除和右除两种,分别用“”和和“/”表示。通常矩阵除法可以用来求未知矩阵。表示。通常矩阵除法可以用来求未知矩阵。 若若 A*X=B,则,则 X=AB 若若 X*A=B,则,则 X=B/A a=1 2;3 4; b=5 6 7;8 9 10; c=a*bc =
44、21 24 27 47 54 61 acans = 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 c/bans = 1.0000 2.0000 3.0000 4.000053例例:求解以下方程:求解以下方程711310322123321321321xxxxxxxxx A=1 3 2;2 2 3;3 1 1A = 1 3 2 2 2 3 3 1 1 B=1;10;7B = 1 10 7 ABans = 2 -3 4544. 矩阵的乘方矩阵的乘方 矩阵的乘方使用矩阵的乘方使用“”运算符,如运算符,如AP,当,当P为整数为整数时,该指令运算结果可做如下解释:时
45、,该指令运算结果可做如下解释:当当P0,表示方阵,表示方阵A直接自乘直接自乘P次;次;当当P a=1 2;3 4a = 1 2 3 4 a2ans = 7 10 15 22 a0ans = 1 0 0 1 a(-2)ans = 5.5000 -2.5000 -3.7500 1.7500555. 矩阵的转置矩阵的转置 矩阵的转置使用矩阵的转置使用“”“”运算符,矩阵的转置就是运算符,矩阵的转置就是将第将第i行第行第j列的元素和第列的元素和第j行第行第i列的元素进行互换。列的元素进行互换。 对于有复数元素的矩阵对于有复数元素的矩阵A,A为共轭转置,为共轭转置,A.为为非共轭转置。非共轭转置。 a=
46、1 2;3 4a = 1 2 3 4 aans = 1 3 2 4 a=1+i 2+i;3+i 4+i; aans = 1.0000 - 1.0000i 3.0000 - 1.0000i 2.0000 - 1.0000i 4.0000 - 1.0000i a.ans = 1.0000 + 1.0000i 3.0000 + 1.0000i 2.0000 + 1.0000i 4.0000 + 1.0000i566. 矩阵的逆(矩阵的逆(inv) 在在MATLAB中,使用函数中,使用函数inv计算矩阵的逆矩阵。计算矩阵的逆矩阵。A是可逆矩阵的充分必要条件是是可逆矩阵的充分必要条件是|A|0,即可逆矩
47、阵是,即可逆矩阵是非奇异方阵。非奇异方阵。 a=magic(3)a = 8 1 6 3 5 7 4 9 2 inv(a)ans = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 a*inv(a)ans = 1.0000 0 -0.0000 -0.0000 1.0000 0 0.0000 0 1.0000 a(-2)ans = 0.0293 -0.0124 -0.0124 -0.0124 0.0293 -0.0124 -0.0124 -0.0124 0.0293 inv(a2)ans = 0.0293 -0.
48、0124 -0.0124 -0.0124 0.0293 -0.0124 -0.0124 -0.0124 0.0293577. 方阵的行列式(方阵的行列式(det) 方阵和行列式是两个不同的概念,方阵和行列式是两个不同的概念,n阶方阵是阶方阵是n2个个数按一定方式排成的数表,数按一定方式排成的数表,n阶行列式则是这些数按一阶行列式则是这些数按一定的运算法则确定的一个数。在定的运算法则确定的一个数。在MATLAB中,求方阵中,求方阵的行列式的函数是的行列式的函数是det。 a=magic(3) a = 8 1 6 3 5 7 4 9 2 det(a) ans = -360588. 矩阵的特征值(矩
49、阵的特征值(eig) 在在MATLAB中,以函数中,以函数eig计算矩阵的特征值,并计算矩阵的特征值,并以向量的形式存放。以向量的形式存放。 如果如果AX=X存在非零解向量,则称存在非零解向量,则称为为A的一个的一个特特征值征值,相应的非零解向量,相应的非零解向量X称为与称为与相对应的相对应的特征向量特征向量。 G=1 2 0; 2 5 -1; 4 10 -1; eig(G)ans = 3.7321 0.2679 1.0000 p,q=eig(G)p = -0.2440 -0.9107 0.4472 -0.3333 0.3333 0.0000 -0.9107 -0.2440 0.8944q =
50、 3.7321 0 0 0 0.2679 0 0 0 1.0000599. 矩阵的特征多项式(矩阵的特征多项式(poly) 在在MATLAB中,以函数中,以函数poly计算矩阵的特征多项计算矩阵的特征多项式。式。 设设A为为n阶方阵,如果阶方阵,如果和和n维非零列向量维非零列向量X使关系使关系式式AX= X成立,那么(成立,那么(A-E)X=0称为矩阵称为矩阵A的特征的特征方程,方程,| A- E |称为方阵称为方阵A的特征多项式。的特征多项式。 a=-2 1 1; 0 2 0;-4 1 3; poly(a)ans = 1 -3 0 4 roots(ans) (计算多项式的根)(计算多项式的根
51、)ans = 2.0000 + 0.0000i 2.0000 - 0.0000i -1.0000 eig(a) (特征值)(特征值)ans = -1 2 26010. 矩阵的秩(矩阵的秩(rank) 在在MATLAB中,以函数中,以函数rank计算矩阵的秩。计算矩阵的秩。 设在矩阵设在矩阵A中存在一个不等于中存在一个不等于0的的r阶子式阶子式D,且所,且所有(有(r+1)阶子式全为)阶子式全为0,那么称,那么称D为方阵为方阵A的最高阶非的最高阶非零子式,零子式,r为矩阵为矩阵A的秩。的秩。 a=magic(4)a = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
52、 rank(a)ans = 3 det(a)ans = 0613.3.2 数组的运算数组的运算 .+ 加法加法 .- 减法减法 .* 乘法乘法 . 幂幂 . 左除左除 ./ 右除右除 . 转置转置 数组的运算操作都是对元素逐个进行的。数组运数组的运算操作都是对元素逐个进行的。数组运算符与矩阵运算符的区别便是多一个小黑点。算符与矩阵运算符的区别便是多一个小黑点。 a=1 2 3; b=4 5 6; a.*b(对应元素相乘)(对应元素相乘)ans = 4 10 18 a.2ans = 1 4 9 a.b (对应元素相除)(对应元素相除)ans = 4.0000 2.5000 2.0000 a=1+
53、j 2+j 3+ja = 1.0000 + 1.0000i 2.0000 + 1.0000i 3.0000 + 1.0000i a. (转置转置)ans = 1.0000 + 1.0000i 2.0000 + 1.0000i 3.0000 + 1.0000i62 a=ones(3); b=magic(3)b = 8 1 6 3 5 7 4 9 2 a*bans = 15 15 15 15 15 15 15 15 15 a.*bans = 8 1 6 3 5 7 4 9 2 b2 (对矩阵求平方)对矩阵求平方)ans = 91 67 67 67 91 67 67 67 91 b.2(对元素求平方
54、)对元素求平方)ans = 64 1 36 9 25 49 16 81 4633.4 矩阵关系运算与逻辑运算矩阵关系运算与逻辑运算说明说明:(1)表达式输入:非)表达式输入:非0“逻辑真逻辑真”,0“逻辑假逻辑假”(2)表达式输出:)表达式输出:1“逻辑真逻辑真”,0“逻辑假逻辑假”3.4.1 关系运算关系运算两个维数相同的矩阵进行比较两个维数相同的矩阵进行比较:相对应元素:相对应元素进行比较,结果为一个同维数矩阵;进行比较,结果为一个同维数矩阵;矩阵和标量进行比较矩阵和标量进行比较:标量和矩阵中的每一:标量和矩阵中的每一个元素进行比较,结果为一个同维数矩阵。个元素进行比较,结果为一个同维数矩
55、阵。64关 系 操 作 符关 系 操 作 符=大于等于大于等于大于大于=等于等于 a=1 2; 3 4; b=1 3; 4 4; a abans = 0 0 0 0 a=bans = 1 0 0 1 a=2ans = 0 1 0 0 a=bans = 1 1 1 1 、=仅比较实部,而仅比较实部,而=、=同时比同时比较实部和虚部。较实部和虚部。653.4.2 逻辑运算逻辑运算 如果如果A和和B是维数相同的矩阵,或者其中一个是标是维数相同的矩阵,或者其中一个是标量,则可以对矩阵进行逻辑运算。量,则可以对矩阵进行逻辑运算。与与A&B或或and(A,B)或或A|B或或or(A,B)非非A或或
56、not(A)异或异或xor(a,b) a=0 1 0 1; b=0 1 1 0; and(a,b)ans = 0 1 0 0 a&bans = 0 1 0 0 a|bans = 0 1 1 1 xor(a,b)ans = 0 0 1 1 a&1ans = 0 1 0 1663.5 各种运算符的优先级各种运算符的优先级 MATLAB对各种运算的优先级别做了规定。计算时,对各种运算的优先级别做了规定。计算时,遵守的规定是较高优先级先于较低优先级,相同优先级遵守的规定是较高优先级先于较低优先级,相同优先级遵从从左到右原则。遵从从左到右原则。优先级优先级运算符运算符最高最高( ).、.
57、、.*、*、./、 /、.、+、-:、=、=、=&最低最低|67 x=5;y=3;z=2; X=ones(3); Y=magic(3)Y = 8 1 6 3 5 7 4 9 2 Z=zeros(3); a=x2*(X+Y)+za = 227 52 177 102 152 202 127 252 77 b=Y&Z+xb = 1 1 1 1 1 1 1 1 1 c=Y=Z+X=Y*xc = 0 0 0 0 0 0 0 0 0683.6 基本统计处理基本统计处理3.6.1 查最大值(查最大值(max)1. C=max(A) 返回矩阵返回矩阵A各列的最大值;若各列的最大值;若A为向量,
58、返回该向量为向量,返回该向量的最大值。的最大值。2. C,I= max(A) 将矩阵将矩阵A各列中的最大元素值及其该元素的位置赋各列中的最大元素值及其该元素的位置赋予行向量予行向量C与与I,当,当A是向量时,是向量时,C、I是标量。是标量。3. C,I= max(A,dim) 按矩阵按矩阵A的第的第dim维的方向查取最大的元素及其该元维的方向查取最大的元素及其该元素的位置赋予向量素的位置赋予向量C与与I。若。若dim=1,按列操作;若,按列操作;若dim=2,按行操作。,按行操作。69 x=2 4 7 4 8 3; m=max(x)m = 8 m,n=max(x)m =(最大元素)(最大元素)
59、 8n =(位置)(位置) 5 x=3 5 1; 9 4 6; max(x)(列最大值)(列最大值)ans = 9 5 6 m,n=max(x)m = 9 5 6n = 2 1 2 (位置)(位置) m,n=max(x,1)(按列)按列)m = 9 5 6n = 2 1 2 m,n=max(x,2) (按行)按行)m = 5 9n = 2 (第(第1行第行第2个)个) 1 (第(第2行第行第1个)个)703.6.2 查取最小值(查取最小值(min) min函数用来求取数据序列中的最小值,使用方法函数用来求取数据序列中的最小值,使用方法和和max函数相同。函数相同。3.6.3 求中位数(求中位数
60、(median)1. Y=median(X):返回矩阵:返回矩阵X各列元素的中位数赋各列元素的中位数赋予行向量予行向量Y;若;若X为向量,为向量,Y为标量。为标量。2. Y=median(X,dim):将数组:将数组X的第的第dim维方向的元维方向的元素求其中位数赋予向量素求其中位数赋予向量Y;若;若dim=1,按列操作(默,按列操作(默认),若认),若dim=2,按行操作。,按行操作。 x=3 5 1; 9 4 6; median(x) (列中值)(列中值)ans = 6.0000 4.5000 3.5000 median(x,2) (按行)(按行) ans = 3 6中位数的位置:当样本数为奇数时,中位数中位数的位置:当样本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏扬州人才集团下属企业招聘6人笔试备考题库及完整答案详解一套
- 2025江苏扬州工业职业技术学院博士专项招聘16人笔试备考试题及答案详解参考
- 2024年度河北省护师类之护师(初级)押题练习试题B卷含答案
- 2025江苏扬州大数据集团子公司管理人员招聘1人笔试备考题库及答案详解1套
- 2025江苏扬州拓普人才开发有限公司招聘劳务派遣工作人员4人笔试备考试题及1套参考答案详解
- 2025广西来宾市招聘乡村振兴专员221人笔试备考试题有答案详解
- 2023年河北邯郸成安县社区工作者招聘22人笔试备考题库含答案详解
- 期末测试卷(五)2024-2025学年人教PEP版(三起)英语六年级下册含答案含听力原文无听力音频
- 2024学山西省八年级语文下学期期末测试卷附答案解析
- 鲁教版六年级下册期末复习Unit 2知识与练习Unit 2 Happy Birthday
- 2025年辽宁省高考生物试卷(含答案)
- 2025年全国统一高考数学试题全国二卷
- 心脏康复护理
- 2025届高三语文最后一课
- 中国数据中心产业发展白皮书023年
- 创新创业创造:职场竞争力密钥智慧树知到期末考试答案章节答案2024年上海对外经贸大学
- 医院检验科实验室生物安全程序文件SOP
- 中外古典园林史-南京林业大学中国大学mooc课后章节答案期末考试题库2023年
- EHS目标与指标管理一览表
- 有关建立《涉农贷款专项统计制度》的通知(doc 72页)
- 试论唐代复仇案件对儒家孝治影响
评论
0/150
提交评论