资源预览内容
第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
第9页 / 共59页
第10页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1) 第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)主要内容:主要内容:变量的定义及赋值;变量的定义及赋值;数值数组、字符串数组、元胞数组和构数值数组、字符串数组、元胞数组和构架数组等数据类型;架数组等数据类型;矩阵运算的定义和规则;矩阵运算的定义和规则;数组运算的定义和规则。数组运算的定义和规则。 2MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)1 1)矩阵矩阵矩阵矩阵:由由由由mnmn个数组成的排成个数组成的排成个数组成的排成个数组成的排成mm行行行行n n列的一个矩形的列的一个矩形的列的一个矩形的列的一个矩形的数表,其中数表,其中数表,其中数表,其中0000矩阵为空矩阵矩阵为空矩阵矩阵为空矩阵矩阵为空矩阵()()。数表中第。数表中第。数表中第。数表中第i(1i(1i im)m)行第行第行第行第j(1j(1j jn)n)列的数据称为矩阵元素列的数据称为矩阵元素列的数据称为矩阵元素列的数据称为矩阵元素 2 2 2 2)标量标量标量标量 :11111111的矩阵,即为只含一个数的矩阵。的矩阵,即为只含一个数的矩阵。的矩阵,即为只含一个数的矩阵。的矩阵,即为只含一个数的矩阵。3 3 3 3)向向向向量量量量:1n1n1n1n或或或或n1n1n1n1的的的的矩矩矩矩阵阵阵阵,即即即即只只只只有有有有一一一一行行行行的的的的或或或或者者者者一一一一列列列列的的的的矩矩矩矩阵阵阵阵。只只只只有有有有一一一一行行行行的的的的矩矩矩矩阵阵阵阵称称称称为为为为行行行行向向向向量量量量,只只只只有有有有一一一一列列列列的的的的矩矩矩矩阵称为列向量。阵称为列向量。阵称为列向量。阵称为列向量。数表中第数表中第数表中第数表中第i(1ini(1in) )个数据称为个数据称为个数据称为个数据称为向量向量向量向量元素元素元素元素。4 4 4 4)数组:数组:数组:数组:矩阵的延伸,一般指多维数组,其中标量、矩阵的延伸,一般指多维数组,其中标量、矩阵的延伸,一般指多维数组,其中标量、矩阵的延伸,一般指多维数组,其中标量、向量和矩阵都是数组的特例。向量和矩阵都是数组的特例。向量和矩阵都是数组的特例。向量和矩阵都是数组的特例。2.1 2.1 概述概述2.1.1 2.1.1 数据术语数据术语 3MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.1.2 数据类型数据类型数据类型包括数据类型包括数值型、字符串型、元胞型、数值型、字符串型、元胞型、构架型构架型等。数值型有单精度型、双精度型和等。数值型有单精度型、双精度型和整数型。整数型有整数型。整数型有uint8,uint16,uint32uint8,uint16,uint32和和uint64uint64等无符号型和等无符号型和int8int8,int16int16,int32int32和和int64int64等符号型整数。等符号型整数。数值型数据可以用带小数点的形式和科学计数值型数据可以用带小数点的形式和科学计数法表示,数值的表示范围是数法表示,数值的表示范围是10-30910+309。-20、1.25、2.88e-56(表示表示2.8810-56)、7.68e204(表示表示7.6810204) 都是合法的数据表都是合法的数据表示。示。一般在计算时一般在计算时采用双精度型,在输出时有多种数采用双精度型,在输出时有多种数采用双精度型,在输出时有多种数采用双精度型,在输出时有多种数值显示格式可供选择。值显示格式可供选择。值显示格式可供选择。值显示格式可供选择。 4MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)数值显示格式的设置通过数值显示格式的设置通过format 命令,命令, 格式如下:格式如下:format shortformat short 默默认设置,以置,以5 5位数字形式位数字形式输出出 format longformat long 以以1515位十进制数形式输出位十进制数形式输出format short eformat short e 以以5 5位十进制数加指数形式输出位十进制数加指数形式输出format long eformat long e 以以1616位十进制数加指数形式输出位十进制数加指数形式输出format short gformat short g 从从format short和和format short e 中自动选择最佳输出形式中自动选择最佳输出形式 5MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)format long gformat long g 从从format long和和format long e 中自动选择最佳输出形式中自动选择最佳输出形式format hexformat hex 以以1616位十六进制数形式输出位十六进制数形式输出format +format + 以正号、负号和零形式输出以正号、负号和零形式输出format bankformat bank 以两位小数形式输出以两位小数形式输出format ratformat rat 以近似分数形式输出以近似分数形式输出format looseformat loose 以稀疏格式(变量与执行结果之以稀疏格式(变量与执行结果之 间有空行)输出间有空行)输出 format compactformat compact 以紧凑格式(变量与执行结果之以紧凑格式(变量与执行结果之 间无空行)输出间无空行)输出 6MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.2 2.2 变量变量 变量的命名规则为变量的命名规则为: :1 1 变变量量名名必必须须以以字字母母开开头头,变变量量名名的的组组成成可可以以是是任任意意字字母母、数数字字或或者者下下划划线线,但但不不能能含含有有空空格格和标点符号。和标点符号。2 2 关键字和函数名不能作为变量名。关键字和函数名不能作为变量名。3 3 变量名不能超过变量名不能超过6363个字符。个字符。4 4 变量名区分字母的大小写变量名区分字母的大小写, ,即大小写敏感。即大小写敏感。 大小写是否区分可以通过命令大小写是否区分可以通过命令casesencasesen on/offon/off进行切换(如果不区分大小写,为进行切换(如果不区分大小写,为casesencasesen off , off ,否则为否则为casesencasesen on on)。)。2.2.1变量的变量的命名命名7MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.2.2变量的赋值变量的赋值变量的赋值通常有变量的赋值通常有两种形式两种形式: 1 1 变量变量= =表达式表达式 2 2 表达式表达式其其中中表表达达式式是是用用运运算算符符将将有有关关运运算算量量连连接接起起来的式子,其结果是一个数组。来的式子,其结果是一个数组。形形式式1 1中中,= = 代代表表的的是是赋赋值值操操作作,将将表表达达式式的的值值赋赋给给MATLABMATLAB的的变变量量;形形式式2 2中中,将将表表达达式的值赋给式的值赋给MATLABMATLAB的临时变量的临时变量ansans。8MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-12-1 在命令窗口输入下述语句,并按回在命令窗口输入下述语句,并按回车键执行,分别给变量车键执行,分别给变量a a、b b、c c赋值:赋值:a=1% a为标量为标量b=0 1 % b为行向量为行向量c=1 2;3 4;5 6 % c为为矩矩阵阵即即二二维维数数组组9MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.2.3 特殊变量特殊变量epsepsepseps MATLAB MATLAB MATLAB MATLAB定义的正的极小值定义的正的极小值定义的正的极小值定义的正的极小值2.2204e-162.2204e-162.2204e-162.2204e-16RealmaxRealmaxRealmaxRealmax 最大的正实数最大的正实数最大的正实数最大的正实数1.7977e+3081.7977e+3081.7977e+3081.7977e+308RealminRealminRealminRealmin 最小的正实数最小的正实数最小的正实数最小的正实数2.2251e-3082.2251e-3082.2251e-3082.2251e-308Pi Pi Pi Pi 内建的内建的内建的内建的值值值值i, ji, ji, ji, j 虚数单位虚数单位虚数单位虚数单位i=j=-1i=j=-1i=j=-1i=j=-1InfInfInfInf NaNNaNNaNNaN 无法定义一个数目无法定义一个数目无法定义一个数目无法定义一个数目 NarginNarginNarginNargin 函数输入参数个数函数输入参数个数函数输入参数个数函数输入参数个数NargoutNargoutNargoutNargout 函数输出参数个数函数输出参数个数函数输出参数个数函数输出参数个数Flops Flops Flops Flops 浮点运算次数浮点运算次数浮点运算次数浮点运算次数10MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.2.4内存变量的管理内存变量的管理1 1 内存变量的显示与删除内存变量的显示与删除1 1)whowho 用于显示在用于显示在MATLABMATLAB工作空间中已工作空间中已 经驻留的变量名清单。经驻留的变量名清单。2 2)whoswhos 在在给出变量名的同时,还给出它们给出变量名的同时,还给出它们 的大小、所占字节数及数据类型等的大小、所占字节数及数据类型等 信息。信息。3 3)clearclear 删除删除MATLABMATLAB工作空间中的变量。注工作空间中的变量。注 意,特殊变量不能被删除意,特殊变量不能被删除。 11MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-22-2 查询查询例例2-12-1中语句执行后中语句执行后工作空间中工作空间中 的变量情况。的变量情况。Name Size Bytes ClassName Size Bytes Class a 1x1 8 double array a 1x1 8 double array b 1x2 16 double array b 1x2 16 double array c 3x2 48 double array c 3x2 48 double arrayGrand total is 10 elements using 72 bytes Grand total is 10 elements using 72 bytes 在命令窗口输入在命令窗口输入在命令窗口输入在命令窗口输入执行结果为:执行结果为:执行结果为:执行结果为:Your variables are:Your variables are:a b ca b c在命令窗口输入在命令窗口输入在命令窗口输入在命令窗口输入执执执执行行行行结结结结果果果果为为为为:whowhowhoswhos12MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2 2 工作空间浏览器工作空间浏览器工作空间浏览器窗口用于工作空间浏览器窗口用于显示所有显示所有MATLAB工作空间中的变量名、数据结构、类型、大工作空间中的变量名、数据结构、类型、大小和字节数,也可以对变量进行观察、编辑、小和字节数,也可以对变量进行观察、编辑、提取和保存。提取和保存。13MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)3 3 内存变量文件内存变量文件 利利利利用用用用MATMATMATMAT文文文文件件件件可可可可以以以以把把把把MATLABMATLABMATLABMATLAB工工工工作作作作空空空空间间间间中中中中的的的的一一一一些些些些有有有有用用用用变变变变量量量量长长长长久久久久地地地地保保保保留留留留下下下下来来来来。MATMATMATMAT文文文文件件件件的的的的生生生生成成成成和和和和调调调调入入入入由由由由savesavesavesave和和和和loadloadloadload命令来完成命令来完成命令来完成命令来完成1) 1) 1) 1) savesavesavesave的格式为:的格式为:的格式为:的格式为:save save save save 文件名文件名文件名文件名 变量名表变量名表变量名表变量名表 - - - -append-append-append-append-asciiasciiasciiascii 功功功功能能能能:把把把把工工工工作作作作空空空空间间间间中中中中的的的的变变变变量量量量存存存存入入入入磁磁磁磁盘盘盘盘。其其其其中中中中变变变变量量量量名名名名表表表表指指指指出出出出需需需需存存存存储储储储的的的的变变变变量量量量,appendappendappendappend为为为为数数数数据据据据填填填填加加加加方方方方式,式,式,式,asciiasciiasciiascii为数据形式。为数据形式。为数据形式。为数据形式。2) 2) 2) 2) loadloadloadload的格式为:的格式为:的格式为:的格式为:load load load load 文件名文件名文件名文件名 变量名表变量名表变量名表变量名表 - - - -asciiasciiasciiascii 功能:功能:功能:功能:磁盘上存储的磁盘上存储的磁盘上存储的磁盘上存储的matmatmatmat数据文件取回到数据文件取回到数据文件取回到数据文件取回到MATLABMATLABMATLABMATLAB工工工工作空间中。参数含义同作空间中。参数含义同作空间中。参数含义同作空间中。参数含义同savesavesavesave。 14MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-3:2-3: 例例2-12-1中语句执行后,在命令窗口中语句执行后,在命令窗口 依次输入下述命令:依次输入下述命令:savesave % %变量变量变量变量a a,b b和和和和c c保存在保存在保存在保存在matlab.matmatlab.matSave mydata1.mat Save mydata1.mat % %变量变量变量变量a a,b b和和和和c c保存在保存在保存在保存在 mydata1.matmydata1.matsave mydata2.mat asave mydata2.mat a % %变量变量变量变量a a保存在保存在保存在保存在 mydata2.matmydata2.matsave mydata3.mat a bsave mydata3.mat a b % %变量变量变量变量a a和和和和b b保存在保存在保存在保存在 mydata3.matmydata3.matsave mydata4.mat a b csave mydata4.mat a b c% %变量变量变量变量a a,b b和和和和c c保存在保存在保存在保存在 mydata4.matmydata4.mat15MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.3 2.3 数值数组数值数组 2.3.1数值数组数值数组的建立的建立1 1 赋值语句建立数组赋值语句建立数组 矩矩阵的建立可以通的建立可以通过赋值语句句实现,赋值符号左符号左边为变量名,右量名,右边为矩矩阵元素。元素。矩矩阵元素元素应用方括号用方括号()()括住,元素可以是数括住,元素可以是数值或或表达式元素,表达式可以由数字、表达式元素,表达式可以由数字、变量、运量、运算符和函数等算符和函数等组成。成。 矩矩阵同行内的元素同行内的元素间用逗号或空格隔开,用逗号或空格隔开,行与行之行与行之间用分号或回用分号或回车键隔开。隔开。 16MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-42-4 在命令窗口输入语句:在命令窗口输入语句: a=1,2,3;4,5,6;7,8,9 按按回回车车键键,命命令令就就被被执执行行,在在MATLABMATLAB命命令令窗窗中显示以下结果:中显示以下结果:a = a = 1 2 3 1 2 3 4 5 6 4 5 6 7 8 9 7 8 9 如如如如果果果果在在在在上上上上述述述述输输输输入入入入语语语语句句句句末末末末尾尾尾尾加加加加上上上上分分分分号号号号,则则则则在在在在命命命命令令令令窗窗窗窗口口口口不不不不显示结果。显示结果。显示结果。显示结果。同理可以通过赋值语句建立向量。同理可以通过赋值语句建立向量。同理可以通过赋值语句建立向量。同理可以通过赋值语句建立向量。17MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-52-5 在命令窗口输入语句:在命令窗口输入语句: x=-1.3 1+2+3 sqrt(5)%sqrt是求平方根函数是求平方根函数按按回回车车键键,指指令令被被执执行行,MATLABMATLAB命命令令窗窗中中显显示示以下结果:以下结果:x = -1.3000 6.0000 2.236118MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-6 2-6 在命令窗口输入下述语句,建立复数数组:在命令窗口输入下述语句,建立复数数组: b=1+2*i,2+3*i;2-i,3-2*i执行结果为:执行结果为:b =b =1.0000 + 2.0000i 2.0000 + 3.0000i1.0000 + 2.0000i 2.0000 + 3.0000i2.0000 - 1.0000i 3.0000 - 2.0000i2.0000 - 1.0000i 3.0000 - 2.0000i 19MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)elfun函数库中提供一系列复数函数函数库中提供一系列复数函数: :realrealrealreal 复数的实数部分复数的实数部分复数的实数部分复数的实数部分real(b)real(b)real(b)real(b)imagimagimagimag 复数的虚数部分复数的虚数部分复数的虚数部分复数的虚数部分imag(bimag(bimag(bimag(b) ) ) )absabsabsabs 绝对值或模绝对值或模绝对值或模绝对值或模abs(b)abs(b)abs(b)abs(b)angleangleangleangle 幅角幅角幅角幅角 angle(b)angle(b)angle(b)angle(b) 结果为弧度结果为弧度结果为弧度结果为弧度angle(b)*180/piangle(b)*180/piangle(b)*180/piangle(b)*180/pi 结果为角度结果为角度结果为角度结果为角度conjconjconjconj 共轭共轭共轭共轭conj(b)conj(b)conj(b)conj(b)20MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2 2 简捷表达式简捷表达式等等间间隔隔向向量量赋赋值值可可以以通通过过简简捷捷表表达达式式实实现现。下下面介绍两种为等间隔向量赋值的方法:面介绍两种为等间隔向量赋值的方法: 1)两个冒号组成等增量语句)两个冒号组成等增量语句 格式:格式:t =初值:增量:终值初值:增量:终值说明:说明: 初初值值、增增量量和和终终值值分分别别表表示示开开始始值值、步步长长和和结结束束值值。当当增增量量可可为为负负值值,省省略略时时则则默默认认为为增增量量为为1;当当增增量量省省略略或或增增量量0而而初初值值0时时为为空空向向量量,当当增增量量0而而初初值值终终值值时时也也为为空空向量。向量。21MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-7 简捷表达式建立向量和矩阵简捷表达式建立向量和矩阵t1=0:0.02:1%产生产生0t11之间的行向量,之间的行向量, 间隔为间隔为0.02t2=5:-1:2 %产生产生5t12之间的行向量,之间的行向量, 间隔为间隔为-1。t4=2:-1:3 % 建立空矩阵建立空矩阵t5=1:2:5;1:3:7 %建立矩阵建立矩阵22MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2 2)使用)使用linspacelinspace和和logspacelogspace函数生成向量函数生成向量 linspacelinspace函数的格式:函数的格式: linspacelinspace(a,b,n)(a,b,n) 功功能能:生生成成从从a a到到b b之之间间线线性性分分布布的的n n个个元元素素的的行行向量。向量。 logspacelogspace (a,b,n) (a,b,n) 功功能能:生生成成从从1010a a到到1010b b之之间间按按对对数数等等分分的的n n个个元元素的行向量。素的行向量。 logspacelogspace函数的格式:函数的格式:23MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例 2-82-8 用用linspacelinspace和和logspacelogspace函数生成向量函数生成向量t1=linspace(0,2*pi,5)% %从从0 0到到2*pi2*pi等分等分 成成5 5个点个点linspace(1,8,8)linspace(1,8,1)t2=logspace(0,2,3) % %从从1 1到到100100(即(即 10100 0到到10102 2)按对数等分成)按对数等分成3 3个点个点24MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)3 3 内建函数内建函数1 1) 通通用特殊矩阵用特殊矩阵函数函数库elmatelmat提供的常用的通用特殊矩阵提供的常用的通用特殊矩阵生成函数生成函数:zeroszerosonesoneseyeeyerandrand25MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2 2)用于专门学科的特殊矩阵)用于专门学科的特殊矩阵 (1 1)魔方矩阵)魔方矩阵 magic(n)magic(n) 功能:功能:魔方矩阵的元素由魔方矩阵的元素由1 1到到nn nn 的自然数的自然数组成,其对角线上的元素为组成,其对角线上的元素为1 1;每行、每列及;每行、每列及对角线上的元素之和均等于对角线上的元素之和均等于(n(n3 3+n)/2+n)/2。魔方魔方矩阵的每行、每列及两条对角线上的元素和矩阵的每行、每列及两条对角线上的元素和都相等。对于都相等。对于n n阶魔方阵,其元素由阶魔方阵,其元素由1,2,3,n1,2,3,n2 2共共n n2 2个整数组成。个整数组成。26MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-92-9 产生产生2 2阶和阶和3 3阶魔方阵。阶魔方阵。m1=magic(2) %产生产生2阶魔方阵阶魔方阵m2=magic(3) %产生产生3阶魔方阵阶魔方阵27MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)(2) (2) 范得蒙矩阵范得蒙矩阵 vander(Vvander(V) )生成以向量生成以向量V V为基础向量的范得蒙矩阵,为基础向量的范得蒙矩阵,矩阵元素最后一列全为矩阵元素最后一列全为1 1,倒数第二列,倒数第二列为一个指定的向量,其他各列是其后列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。定向量生成一个范得蒙矩阵。28MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-102-10 产生范得蒙矩阵。产生范得蒙矩阵。v1=vander(1;2;3;5)v1=vander(1;2;3;5)v2=v2=vander(1:3)v3=v3=vander(1:4)29MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)(3 3)希尔伯特矩阵)希尔伯特矩阵hilb(nhilb(n) ) 生成生成n n阶的希尔伯特矩阵阶的希尔伯特矩阵invhilb(ninvhilb(n) ) 求求n n阶的希尔伯特矩阵的逆阶的希尔伯特矩阵的逆 例例2-112-11 求求4 4阶希尔伯特矩阵及其逆矩阵。阶希尔伯特矩阵及其逆矩阵。format ratformat rat % %以有理形式输出以有理形式输出H=H=hilbhilb(4)(4)invHinvH= =invhilbinvhilb(4)(4)30MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)(4)(4)托普利兹矩阵托普利兹矩阵 功能:功能:用向量用向量x x生成一个对称的托普利兹矩生成一个对称的托普利兹矩阵。矩阵元素除第一行第一列外,其他每阵。矩阵元素除第一行第一列外,其他每个元素都与左上角的元素相同。个元素都与左上角的元素相同。toeplitztoeplitz(x,y)(x,y) 功能:功能:生成一个以生成一个以x x为第一列,为第一列,y y为第一行为第一行的托普利兹矩阵。其中的托普利兹矩阵。其中x, yx, y均为向量,两均为向量,两者不必等长。者不必等长。toeplitztoeplitz(x)(x)31MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-12 2-12 产生托普利兹矩阵。产生托普利兹矩阵。T1=toeplitz(1:4)T1=toeplitz(1:4)T2=toeplitz(1:3,3:6)T2=toeplitz(1:3,3:6)32MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)(5) (5) 伴随矩阵伴随矩阵 compan(pcompan(p) ) 功能:功能:生成伴随矩阵,其中生成伴随矩阵,其中p p是一个多项式是一个多项式的系数向量,高次幂系数排在前,低次幂的系数向量,高次幂系数排在前,低次幂排在后。排在后。例例2-132-13 为了求多项式为了求多项式x x3 3-7x+6-7x+6的伴随矩阵,的伴随矩阵,可使用语句:可使用语句:p=1,0,-7,6;c=p=1,0,-7,6;c=compan(pcompan(p) )33MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)(6) (6) 帕斯卡矩阵帕斯卡矩阵n n阶帕斯卡矩阵的生成函数的格式:阶帕斯卡矩阵的生成函数的格式: pascal(npascal(n) )例例2-14 2-14 求求( (x+y)x+y)4 4的展开式。的展开式。p1=p1=p1=p1=pascalpascalpascalpascal(4) (4) (4) (4) p1 =p1 =p1 =p1 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 3 6 10 1 3 6 10 1 3 6 10 1 3 6 10 1 4 10 20 1 4 10 20 1 4 10 20 1 4 10 20 由执行结果可知,矩阵次对角线上的元素由执行结果可知,矩阵次对角线上的元素由执行结果可知,矩阵次对角线上的元素由执行结果可知,矩阵次对角线上的元素1,4,6,41,4,6,41,4,6,41,4,6,4,1 1 1 1即为展开式的系数。即为展开式的系数。即为展开式的系数。即为展开式的系数。34MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)(7 7)哈达玛矩阵哈达玛矩阵n阶哈达玛矩阵的生成函数的格式:阶哈达玛矩阵的生成函数的格式: hadamard(n)例例2-15 2-15 求求2 2阶和阶和4 4阶的哈达玛矩阵。阶的哈达玛矩阵。h1=hadamard(2)h2=hadamard(4) 35MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)4 通过通过MAT数据文件加载矩阵数据文件加载矩阵通通 过过 loadload命命 令令 或或 选选 择择 菜菜 单单 FileImport FileImport DataData命令加载命令加载MATMAT数据文件来创建矩阵。数据文件来创建矩阵。5 在在M文件中创建矩阵文件中创建矩阵 M M文文件件实实际际上上是是一一种种包包含含MATLABMATLAB代代码码的的文文本本文文件件;通通过过在在MATLABMATLAB命命令令窗窗口口中中运运行行M M文文件件创建矩阵。创建矩阵。36MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.3.2数组元素的标识数组元素的标识1 向量的标识向量的标识向向量量是是由由多多个个元元素素组组成成的的,每每个个元元素素通通过过序序号来标识。号来标识。例例2-162-16 演示向量的标志和重新赋值。演示向量的标志和重新赋值。x=1:2:7; y=x; y3=y(3) %引用引用y的第三个元素的第三个元素5 y5=y(end) %用用end函数引用函数引用y的最后的最后 一个元素一个元素7y(3)=10 %对对y的第三个元素重新赋值的第三个元素重新赋值37MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2矩阵的标识矩阵的标识两种标识方式两种标识方式: : 全下标方式全下标方式和和单下标方式单下标方式。1) 1) 全下标方式全下标方式 全全下下标标方方式式标标识识是是指指出出行行下下标标和和列列下下标标的的方方法法标标识识,如如一一个个mnmn的的矩矩阵阵a a的的第第i i(1im1im)行行第第j(1jn)j(1jn)列列的的元元素素可表示为可表示为a(i,j)a(i,j)。38MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-172-17 演示矩阵元素的标识和扩充矩阵的演示矩阵元素的标识和扩充矩阵的 方法方法a=1 2;3 4;5 6; %建立一个建立一个23的矩阵的矩阵a12=a(1,2) % %引用引用a(1,2)a(1,2)的值的值a(3,3) % %引用引用a(3,3)a(3,3)的值,的值,(3,3)(3,3) 超出矩阵的大小,出错超出矩阵的大小,出错a(3,3)=9 % %扩充扩充2 23 3的矩阵为的矩阵为3 33 3的的 矩阵,并给矩阵,并给a(3,3)a(3,3)赋值赋值39MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2) 2) 单下标方式单下标方式根据根据全下标全下标换算出单下标的函数换算出单下标的函数sub2indsub2ind格式:格式: IND=sub2ind(siz,I,J) IND=sub2ind(siz,I,J) 功功能能:INDIND为为返返回回的的对对应应的的单单下下标标,sizsiz为为以以矩矩阵阵行行数数和和列列数数构构成成的的两两个个元元素素的的向向量量,I I和和J J分分别别为矩阵的某一行号和列号。为矩阵的某一行号和列号。根据根据单下标单下标换算出全下标的函数换算出全下标的函数ind2subind2sub格式:格式: I,J=ind2sub(I,J=ind2sub(sizsiz,IND),IND)功功能能:I I和和J J分分别别为为返返回回的的矩矩阵阵的的某某一一行行号号和和列列号号,sizsiz为为以以矩矩阵阵行行数数和和列列数数构构成成的的两两个个元元素素的的向向量,量,INDIND为单下标。为单下标。40MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-182-18 演示矩阵元素的全下标标识和单下演示矩阵元素的全下标标识和单下标标识的转换。标标识的转换。i,j=ind2sub(3 3,5)% 33矩阵的第矩阵的第5个元素的全下标个元素的全下标ind=sub2ind(3 3,3,3) % 33矩阵第三行、第三列元素的序号矩阵第三行、第三列元素的序号41MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.3.3 2.3.3 子数组子数组 子子子子数数数数组组组组是是是是从从从从数数数数组组组组中中中中取取取取出出出出一一一一部部部部分分分分元元元元素素素素所所所所构构构构成成成成的的的的数数数数组组组组,通常可用全下标和单下标方式取子数组。通常可用全下标和单下标方式取子数组。通常可用全下标和单下标方式取子数组。通常可用全下标和单下标方式取子数组。 1 1 向量的一般情况如下:向量的一般情况如下:A(i)A(i) 数组数组A A的第的第i i个元素个元素A(i:L:i+m)A(i:L:i+m) 数数组组A A的的第第i i个个- -第第i+mi+m个个(下下标标增增量量为为L L)元素元素42MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2 2 矩阵一般情况如下:矩阵一般情况如下:A(:,j)A(:,j) 数组数组数组数组A A A A的第的第的第的第j j j j列全部元素列全部元素列全部元素列全部元素A(i,:)A(i,:) 数组数组数组数组A A A A的第的第的第的第i i i i行全部元素行全部元素行全部元素行全部元素A(i,j)A(i,j) 数组数组数组数组A A A A的第的第的第的第i i i i行第行第行第行第j j j j列的元素列的元素列的元素列的元素A(:,j:L:j+n)A(:,j:L:j+n) 数组数组数组数组A A A A的第的第的第的第j j j j列列列列- - - -第第第第j+nj+nj+nj+n列(下列(下列(下列(下 标增量为标增量为标增量为标增量为L L L L)全部元素全部元素全部元素全部元素A(i:k:i+m,:)A(i:k:i+m,:) 数组数组数组数组A A A A的第的第的第的第i i i i行行行行- - - -第第第第i+mi+mi+mi+m行(下标行(下标行(下标行(下标 增量为增量为增量为增量为k k k k)元素元素元素元素A(i:k:i+m,j:L:j+n)A(i:k:i+m,j:L:j+n) 数组数组数组数组A A A A的第的第的第的第i i i i行行行行- - - -第第第第i+mi+mi+mi+m 行(下标增量为行(下标增量为行(下标增量为行(下标增量为k k k k)并在第并在第并在第并在第j j j j列列列列 - - - -第第第第j+nj+nj+nj+n列(下标增量为列(下标增量为列(下标增量为列(下标增量为L L L L)全全全全 部元素部元素部元素部元素43MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-192-19 演示建立行向量并取子数组的方法。演示建立行向量并取子数组的方法。a1=1.1,-2.2,3.3,-4.4,5.5;a1(3) % 取取a1的第三个元素的第三个元素a1(1 4) % 取取a1的第一个和第四个元素的第一个和第四个元素a1(1:2:5) % 取取a1的第一个、第三个和第五的第一个、第三个和第五 个元素,个元素,等价语句为等价语句为: a1(1:2:end)44MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-20 演示建立演示建立34的矩阵的矩阵并取子数组的方法并取子数组的方法。a=1 2 3 4;5 6 7 8;9 10 11 12; a=1 2 3 4;5 6 7 8;9 10 11 12; a(1,:) a(1,:) a(:,end)a(:,end)a24=a(2,4) a24=a(2,4) % % 取取取取a a的第二行、第四列的元素的第二行、第四列的元素的第二行、第四列的元素的第二行、第四列的元素a(1:2:4,:)a(1:2:4,:)a(:,1:2:end)a(:,1:2:end)a1=a(1,2,2,3,4) a1=a(1,2,2,3,4) a2=a(1,2,2,3,1) a2=a(1,2,2,3,1) a3=a(3,1,:) a3=a(3,1,:) a(1,3,2,4)=zeros(2)a(1,3,2,4)=zeros(2) % %对对对对a(1,3,2,4)a(1,3,2,4)赋值赋值赋值赋值45MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.3.4数组的赋值数组的赋值数数组组的的赋赋值值大大致致有有两两种种方方式式:全全元元素素方方式式和和子子数组方式数组方式。1 全元素方式全元素方式 全元素方式赋值的一般格式全元素方式赋值的一般格式: : a(:)=ba(:)=b 功功能能:给给矩矩阵阵a a的的所所有有元元素素赋赋值值,矩矩阵阵b b的的元元素素总总数数必必须须等等于于矩矩阵阵a a的的元元素素总总数数,但但行行列列数数不不一定相等。一定相等。46MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-212-21 演示全元素方式赋值的方法演示全元素方式赋值的方法a=zeros(2,3); b=1:6; a(:)=ba=zeros(2,3); b=1:6; a(:)=b执行结果如下:执行结果如下:a =a = 1 3 5 1 3 5 2 4 6 2 4 647MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2 子数组方式子数组方式子数组方式赋值的一般格式子数组方式赋值的一般格式子数组方式赋值的一般格式子数组方式赋值的一般格式1 1 1 1: a(s)=ba(s)=ba(s)=ba(s)=b功功功功能能能能:给给给给矩矩矩矩阵阵阵阵a a a a的的的的部部部部分分分分元元元元素素素素赋赋赋赋值值值值,s s s s为为为为单单单单下下下下标标标标序序序序号号号号,b b b b为为为为向向向向量量量量,向向向向量量量量的的的的元元元元素素素素个个个个数数数数必必必必须须须须等等等等于于于于数数数数组组组组a a a a中中中中s s s s指指指指定定定定的的的的元元元元素素素素个数。个数。个数。个数。子数组方式赋值的一般格式子数组方式赋值的一般格式子数组方式赋值的一般格式子数组方式赋值的一般格式2 2 2 2:A(i:k:i+m,j:L:j+n)=bA(i:k:i+m,j:L:j+n)=bA(i:k:i+m,j:L:j+n)=bA(i:k:i+m,j:L:j+n)=b 功功功功能能能能:给给给给数数数数组组组组a a a a的的的的部部部部分分分分元元元元素素素素赋赋赋赋值值值值,则则则则数数数数组组组组b b b b的的的的行行行行列列列列数数数数必必必必须须须须等等等等于于于于数数数数组组组组a a a a的的的的第第第第i i i i行行行行- - - -第第第第i+mi+mi+mi+m行行行行(下下下下标标标标增增增增量量量量为为为为k k k k)并并并并在在在在第第第第j j j j列列列列- - - -第第第第j+nj+nj+nj+n列(下标增量为列(下标增量为列(下标增量为列(下标增量为L L L L)全部元素的行列数。全部元素的行列数。全部元素的行列数。全部元素的行列数。48MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-222-22 演示子数组方式赋值方法。演示子数组方式赋值方法。 a=zeros(2,3);a(5:6)=2 3 a=zeros(2,3);a(5:6)=2 3 % %给第给第5 5、6 6元素赋值元素赋值 如如果果对对a a不不作作初初始始化化,a(5:6)=2 a(5:6)=2 33的的赋赋值值情况有何变化?情况有何变化?a=zeros(3,4);a=zeros(3,4);a(1:2,1:3)=1 1 1;1 1 1a(1:2,1:3)=1 1 1;1 1 1 % %给第一、二行元素赋值为全给第一、二行元素赋值为全1 149MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.3.5数组元素的删除数组元素的删除数数组组元元素素的的删删除除是是简简单单地地通通过过赋赋值值为为空空( (用用表表示示) )实现的。实现的。通通过过赋赋值值为为空空,可可以以实实现现删删除除一一行行元元素素、一一列列元素、子数组和整个数组。元素、子数组和整个数组。注意区分空矩阵和零矩阵:注意区分空矩阵和零矩阵:空空矩矩阵阵是是0000的的数数组组,而而零零矩矩阵阵是是元元素素为为零零的的mnmn的数组。的数组。50MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-232-23 建立建立3333的数组,实现数组元素的的数组,实现数组元素的 删除。删除。a=1 2 0;3 4 0;5 6 9;a=1 2 0;3 4 0;5 6 9; a(:,3)=a(:,3)= % %删除第三列元素删除第三列元素删除第三列元素删除第三列元素a(2,:)=a(2,:)= % %删除第二行元素删除第二行元素删除第二行元素删除第二行元素a(1)=a(1)= % %删除一个元素,则矩阵变为行向量删除一个元素,则矩阵变为行向量删除一个元素,则矩阵变为行向量删除一个元素,则矩阵变为行向量a=a= % %删除所有元素为空矩阵删除所有元素为空矩阵删除所有元素为空矩阵删除所有元素为空矩阵51MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2.3.6 多维数组多维数组1 1 三维数组的建立三维数组的建立三维数组的建立方式和二维数组类似,大致三维数组的建立方式和二维数组类似,大致有有三种方式:三种方式:1 1) 通过全下标元素赋值方式创建通过全下标元素赋值方式创建2 2) 由生成函数直接创建由生成函数直接创建3) 3) 由生成函数由生成函数onesones,zeroszeros,randrand和和randnrandn等直接创建多维数组。等直接创建多维数组。52MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-242-24 演示全下标元素赋值方式建立演示全下标元素赋值方式建立 三维数组的方法。三维数组的方法。 b=1 1;2 2; %先创建二维数组先创建二维数组 b(:,:,2)=5 %扩展数组扩展数组53MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-252-25 演示生成函数演示生成函数onesones、zeroszeros、randrand和和randnrandn直接创建多维数组的方法。直接创建多维数组的方法。ones(2,3,4)ones(2,3,4)54MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)函数函数catcat的格式为:的格式为:cat(cat(维维,p1,p2,),p1,p2,)功功能能:按按指指定定行行列列数数放放置置模模块块数数组组生生成成多多维维数数组组。参数维是指沿着第几维连接数组参数维是指沿着第几维连接数组p1p1、p2p2等。等。 函数函数repmatrepmat的格式为的格式为: :repmat(p,repmat(p,行行 列列 页页 ) )功功能能:在在总总元元素素的的数数目目不不变变的的前前提提下下重重新新确确定定数数组的行列数来重组数组。组的行列数来重组数组。 其其中中第第一一个个输入入变量量p p是是用用来来放放置置的的模模块数数组,后面的后面的变量行、列、量行、列、页是要放在指定的各是要放在指定的各维。 55MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-26 演示演示cat和和repmat函数的功能。函数的功能。a=1 2 ;3 4;b= 5 6;7 8;cat(1 ,a,b)a=1 2 ;3 4;b= 5 6;7 8;cat(1 ,a,b)a=1 2 ;3 4;b= 5 6;7 8;cat(2 ,a,b)a=1 2 ;3 4;b= 5 6;7 8;cat(2 ,a,b)56MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)a=1 2 ;3 4;b= 5 6;7 8;cat(3 ,a,b)a=1 2 ;3 4;b= 5 6;7 8;cat(3 ,a,b)repmat(magic(2), 2, 3)repmat(magic(2), 2, 3)( repmat(magic(2), 2, 3)( repmat(magic(2), 2, 3)结果同下结果同下结果同下结果同下) )repmat(5, 2, 3)repmat(5, 2, 3)57MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)2 2 多维数组的信息多维数组的信息 函数函数函数函数ndimsndimsndimsndims的功能是直接给出数组的维数,的功能是直接给出数组的维数,的功能是直接给出数组的维数,的功能是直接给出数组的维数,格式为格式为格式为格式为: ndims(pndims(pndims(pndims(p) ) ) ) 其中,其中,其中,其中,p p p p为数组。为数组。为数组。为数组。函数函数函数函数sizesizesizesize的功能是给出数组各维的大小,的功能是给出数组各维的大小,的功能是给出数组各维的大小,的功能是给出数组各维的大小,格式为格式为格式为格式为: m,n,=size(p)m,n,=size(p)m,n,=size(p)m,n,=size(p) % % % %得出各维的大小得出各维的大小得出各维的大小得出各维的大小 m=size(p,x)m=size(p,x)m=size(p,x)m=size(p,x)% % % %得出某一维的大小得出某一维的大小得出某一维的大小得出某一维的大小 其其其其中中中中,p p p p为为为为多多多多维维维维数数数数组组组组;m m m m为为为为行行行行数数数数,n n n n为为为为列列列列数数数数;当当当当只只只只有有有有一一一一个个个个输输输输出出出出变变变变量量量量时时时时, x=1x=1x=1x=1返返返返回回回回第第第第一一一一维维维维( ( ( (行行行行数数数数) ) ) ),x=2x=2x=2x=2返返返返回回回回第二维第二维第二维第二维( ( ( (列数列数列数列数) ) ) ),以此类推。,以此类推。,以此类推。,以此类推。numelnumelnumelnumel的的的的功功功功能能能能是是是是给给给给出出出出数数数数组组组组的的的的体体体体积积积积(元元元元素素素素的的的的数数数数目目目目),格格格格式为式为式为式为: n =n = numel numel( (p p p p ) ) 其中,其中,其中,其中,p p p p为数组。为数组。为数组。为数组。58MALAB 7.X程序设计程序设计第第2 2章章 MATLAB MATLAB 运算基础运算基础(1)(1)例例2-27 演示演示ndimsndims,sizesize和和 numel函数的函数的 功能。功能。x = ones(1,8);n = length(x)x = ones(1,8);n = length(x) % % 建立任意的建立任意的建立任意的建立任意的1 18 8的数组的数组的数组的数组x xy=zeros(3,5);d=size(y)y=zeros(3,5);d=size(y) % % 建立任意的建立任意的建立任意的建立任意的3 35 5的数组的数组的数组的数组y ym n=size(y),m n=size(y),ndims(y),numel(y),mmndims(y),numel(y),mm=size(y,1),nn=size(y,2=size(y,1),nn=size(y,2) )z= rand(2,10,3);z= rand(2,10,3); % % 建立任意的建立任意的建立任意的建立任意的2 210103 3的数组的数组的数组的数组y yn = length(z)n = length(z)59MALAB 7.X程序设计程序设计
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号