版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab语言及其应用,第3讲 matlab数据的运算与操作,2020/8/30,Matlab Language,2,1、数组的算术运算,MATLAB数组支持线性代数中所有的矩阵运算。 建立特有的数组运算符,如:“.*”、“./”等。 注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。 MATLAB数组运算符列表 运算 运算符含义说明 加 + 相应元素相加 减 -相应元素相减 乘 *矩阵乘法 点乘 .* 相应元素相乘 幂 矩阵幂运算 点幂 .相应元素进行幂运算 左除或右除或/矩阵左除或右除 左点除或右点除 .或./A的元素被B的对应元素除 转秩 ,2020/8/30,Matla
2、b Language,3,1、数组的算术运算,(1) 矩阵加减运算 假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。 运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。 一个标量也可以和其他不同维数的矩阵进行矩阵加减运算,2020/8/30,Matlab Language,4,1、数组的算术运算 (续),【例1-1】数组加减法 a=zeros(2, 3); a(:)=1:6; b=a+2.5 b = 3.5000 5.5000 7.5000 4.5000
3、6.5000 8.5000 c=b-a c = 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000,2020/8/30,Matlab Language,5,1、数组的算术运算,(2) 矩阵乘法 假定有两个矩阵A和B,若A为mn矩阵,B为np矩阵,则C=A*B为mp矩阵。, a=1,2,3;4,5,6 b=1,2;3,0;7,4 c=a*b c = 28 14 61 32,a = 1 2 3 4 5 6,b = 1 2 3 0 7 4,【例1-2】矩阵乘法,2020/8/30,Matlab Language,6,1、数组的算术运算,(3) 矩阵除法 在MATLAB
4、中,有两种矩阵除法运算:和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则AB和B/A运算可以实现。AB等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。 对于含有标量的运算,两种除法运算的结果相同,如3/4和43有相同的值,都等于0.75。又如,设a=10.5,25,则a/5=5a=2.1000 5.0000。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般ABB/A。,2020/8/30,Matlab Language,7,1、数组的算术运算,(4)点运算 在MATLAB中,有一种特殊的运算,因
5、为其运算符是在有关算术运算符前面加点,所以叫点运算。 点运算符有.*、./、.和.。 两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。,2020/8/30,Matlab Language,8,1、数组的算术运算 (续),【例1-3】点幂“.”举例 a=1:6 a = 1 2 3 4 5 6 b=reshape(a,2,3) b = 1 3 5 2 4 6,a=a.2 a = 1 4 9 16 25 36 b=b.2 b = 1 9 25 4 16 36,2020/8/30,Matlab Language,9,1、数组的算术运算 (续),【例1-4】画出y=1/(x+1)
6、的函数曲线,x0, 100。 x=0:100; y=1./(x+1); plot(x, y); legend(y=1/(x+1);,2020/8/30,Matlab Language,10,1、数组的算术运算 (续),【例1-5】生成一个信号:x=sin(2*pi*t)+sin(4*pi*t) t = 0:199./100; %采样时间点 % 生成信号 x = sin(2*pi*t) + sin(4*pi*t); plot(t,x); legend(x = sin(2*pi*t) + sin(4*pi*t);,2020/8/30,Matlab Language,11,1、数组的算术运算 (续)
7、,2020/8/30,Matlab Language,12,1、数组的算术运算,(5) MATLAB常用数学函数 函数使用说明: 三角函数以弧度为单位计算。sin、asin abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。 用于取整的函数有fix、floor、ceil、round,要注意它们的区别。 rem与mod函数的区别。rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。 sqrt平方根函数、log、log10、log2、exp、pow2,2020/8/30,Matlab Language,13,2、关系运算,Matlab提供了6种关系运算符:,、
8、=、= =、=(不等于),关系运算符的运算法则: 1、当两个标量进行比较时,直接比较两数大小。若关系成立, 结果为1,否则为0。 2、当两个维数相等的矩阵进行比较时,其相应位置的元素按 标量关系进行比较,并给出结果,形成一个维数与原来相同 的0、1矩阵。 3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行 比较,结果形成一个与矩阵维数相等的0、1矩阵。,2020/8/30,Matlab Language,14,2、关系运算 (续),【例】建立5阶方阵A,判断其元素能否被3整除。,A = 24, 35, 13, 22, 63; 23, 39, 47, 80, 80; . 90, 41, 8
9、0, 29, 10; 45, 57, 85, 62, 21; 37, 19, 31, 88, 76 A = 24 35 13 22 63 23 39 47 80 80 90 41 80 29 10 57 85 62 21 19 31 88 76 P = rem(A,3)=0 %被3除,求余,P = 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0,2020/8/30,Matlab Language,15,【例】在0,3 区间,求 的值。要求 消去负半波,即(,2)区间内的函数值置零。,x = 0:pi/100:3*pi; y = sin(x);
10、 y1 = (y=0).*y; %消去负半波,2020/8/30,Matlab Language,16,3、逻辑运算,Matlab提供了3种逻辑运算符:,56,0,17,-45,0; find(A=10 2、具有相同优先级的运算符从左到右依次进行运算; 3、不同优先级的运算符采用先进行优先级高的运算。 4、算术运算符级别最高,逻辑运算符级别最低。,若一个表达式包括运算变量、算术运算符、关系运算符和逻辑运算符等,如何运算呢?,4、运算符的优先级,由表中可以看到,括号的优先级别最高,因此可以用括号来改变默认的优先等级。,4、运算符的优先级,如果加上括号即: C=(A./B).2 则结果为: C=
11、2.2500 81.0000 1.0000,矩阵的合并,矩阵的合并就是把两个或者两个以上的矩阵连接成一个新矩阵。矩阵构造符 可用于构造矩阵,并可以作为一个矩阵合并操作符。 表达式C=A B在水平方向合并矩阵A和B; 表达式C=A;B在竖直方向合并矩阵A和B。,5、矩阵的合并与删除,具有相同行数的两个矩阵,合并为一个新矩阵,不具有相同行数的两个矩阵,不允许合并为一个新矩阵,除了矩阵合并符“”外,还可以使用矩阵合并函数。矩阵合并函数的描述和基本调用格式如下表所示。,5、矩阵的合并与删除,5、矩阵的合并与删除,矩阵行列的删除,要删除矩阵的某一行或者是某一列,只需将该行或者该列赋予一个空矩阵即可。,5
12、、矩阵的合并与删除,2020/8/30,Matlab Language,26,6. 数据分析与统计,最大值和最小值 MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。 1、求向量的最大值和最小值 求一个向量X的最大值的函数有两种调用格式,分别是: (1) y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值; (2)y,I=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。 求向量X的最小值的函数是min(X),用法和max(X)完全相同。,2020/8/30,M
13、atlab Language,27,【例】求向量的最大值 x=-43,72,9,16,23,47; y=max(x) %求向量x中的最大值 y = 72 y,l=max(x) %求向量x中的最大值及其该元素的位置 y = 72 l = 2,2020/8/30,Matlab Language,28,6. 数据分析与统计,2. 求矩阵的最大值和最小值 求矩阵A的最大值的函数有3种调用格式,分别是: (1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值; (2) Y,U=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号; (3) ma
14、x(A,dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。 求最小值的函数是min,其用法和max完全相同。,2020/8/30,Matlab Language,29,【例】求矩阵的最大值 x=-43,72,9; 16,23,47; y=max(x) %求矩阵x中每列的最大值 y = 16 72 47 y,l=max(x) %求矩阵x中每列的最大值及其该元素的位置 y = 16 72 47 l = 2 1 2 max(x, ,1), max(x, ,2) %求矩阵中每行的最大值,2020/8/30,
15、Matlab Language,30,6. 数据分析与统计,求和与求积 sum(X):返回向量X各元素的和。 prod(X):返回向量X各元素的乘积。 sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。 prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。 sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。 prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。,2020/8/30,Matlab L
16、anguage,31,6. 数据分析与统计,【例】求向量的和与积 x=1,2,3,4,5,6; sum(x) %求向量x中所有元素之和 ans = 21 prod(x) %求向量x中所有元素之积 ans = 720,2020/8/30,Matlab Language,32,6. 数据分析与统计,【例】求矩阵的和与积 x=1,2,3 ; 4,5,6 ; 7,8,9; sum(x) %求矩阵x中各列元素之和 ans = 12 15 18 prod(x) %求矩阵x中各列元素之积 ans = 28 80 162,2020/8/30,Matlab Language,33,6. 数据分析与统计,平均值与
17、中值 求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为: mean(X):返回向量X的算术平均值。 median(X):返回向量X的中值。 mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值。 median(A):返回一个行向量,其第i个元素是A的第i列的中值。 mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的算术平均值。 median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的中
18、值。,2020/8/30,Matlab Language,34,6. 数据分析与统计,【例】求向量的平均值与中值 x=1,2,3,4,5,9; mean(x) %求向量x中所有元素的算术平均值 ans = 4 median(x) %求向量x中所有元素的中值 ans = 3.5000,2020/8/30,Matlab Language,35,6. 数据分析与统计,【例】求矩阵的平均值与中值 x=1,2,3 ; 4,5,6 ; 7,8,9; mean(x) %求矩阵x中各列元素之算术平均值 ans = 4 5 6 median(x) %求矩阵x中各列元素之中值 ans = 4 5 6,7 矩阵分析
19、与处理,7.1 矩阵结构调整变换7.1.1 对角阵与三角阵1对角阵只有对角线上有非0元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为1的对角矩阵称为单位矩阵。,(1) 提取矩阵的对角线元素 设A为mn矩阵, diag(A)函数:用于提取矩阵A主对角线元素,产生一个具有 min(m,n)个元素的列向量。 diag(A,k):其功能是提取第k条对角线的元素。 (2) 构造对角矩阵 设V为具有m个元素的向量, diag(V)将产生一个mm对角矩阵,其主对角线元素即为向量V的元素。 diag(V,k),其功能是产生一个nn(n=m+|k|)对角阵,其第k条对角线的元
20、素即为向量V的元素。,例 先建立55矩阵A,然后将A的第一行元素乘以1,第二行乘以2,第五行乘以5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;.11,18,25,2,19;D=diag(1:5);D*A %用D左乘A,对A的每行乘以一个指定常数,2三角阵三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,即矩阵的对角线以下的元素全为0的一种矩阵,而下三角阵则是对角线以上的元素全为0的一种矩阵。 (1) 上三角矩阵求矩阵A的上三角阵的MATLAB函数是triu(A)。triu(A)函数也有另一种形式triu(A,k),其功能是求矩阵
21、A的第k条对角线以上的元素。例如,提取矩阵A的第2条对角线以上的元素,形成新的矩阵B。(2) 下三角矩阵在MATLAB中,提取矩阵A的下三角矩阵的函数是tril(A)和tril(A,k),其用法与提取上三角矩阵的函数triu(A)和triu(A,k)完全相同。,7.1.2 矩阵的转置与旋转1矩阵的转置转置运算符是单撇号()。2矩阵的旋转利用函数rot90(A,k)将矩阵A旋转90的k倍,当k为1时可省略。 3矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,依次类推。MATLAB对矩阵A实施左右翻转的函数是fliplr(A)。4矩阵的上下翻转MATLAB
22、对矩阵A实施上下翻转的函数是flipud(A)。,7.2 矩阵求逆与线性方程组求解7.2.1 矩阵的逆对于一个方阵A,如果存在一个与其同阶的方阵B,使得: AB=BA=I (I为单位矩阵)则称B为A的逆矩阵,当然,A也是B的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在MATLAB中,求一个矩阵的逆非常容易。求方阵A的逆矩阵可调用函数inv(A)。,7.2.2 用矩阵求逆方法求解线性方程组 在线性方程组Ax=b两边各左乘A-1,有 A-1Ax=A-1b 由于A-1A=I,故得 x=A-1b 例 用求逆矩阵的方法解线性方程组。 命令如下: A=1,2,3;1,4,9;1,8,27;
23、b=5,-2,6; x=inv(A)*b 也可以运用左除运算符“”求解线性代数方程组。,7.3 矩阵求值,7.3.1 方阵的行列式把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为所对应的行列式的值。在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。,7.3.2 矩阵的秩与迹1矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是rank(A)。2矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。,7.4 矩阵的特征值与特征向量,在MATLAB中,计算矩阵A的特征值和特
24、征向量的函数是eig(A),常用的调用格式有3种:(1) E=eig(A):求矩阵A的全部特征值,构成向量E。(2) V,D=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。 (3) V,D=eig(A,nobalance):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。 例3.9 用求特征值的方法解方程。3x5-7x4+5x2+2x-18=0p=3,-7,0,5,2,-18;A=compan(p); %A的伴随矩阵x1=eig(A) %求A的特征值x2=roots(p) %直接求多项式p
25、的零点,字符和字符串类型,8 字符串(string、array of characters),在Matlab中,数据类型(char)表示一个字符。一个char类型的1n数组称为字符串string。 在Matlab中,用“单引号对”表示字符串。,2020/8/30,Matlab Language,47,8 字符串(string、array of characters),关于字符串 MATLAB处理字符(Characters)与字符串(Strings)的相关指令大部分都放在下列目录之中: MATLAB根目录toolboxmatlabstrfun 其中的strfun就是代表String Functi
26、ons。若要查询与字符和字符串相关的指令,可在 MATLAB 下输入: help strfun 或是 help strings,2020/8/30,Matlab Language,48,8.1字符串的概念,多个字符(Characters)可以构成一个字符串(Strings),或称为字符数组(character array)。 一个字符串是被视为一个行向量(row vector)。 字符串中的每一个字符(含空格),以其 ASCII 码的形式存放于行向量中,是该字符串变量的一个元素(element)。 MATLAB提供了丰富的字符串操作,包括字符串的创建、合并、比较、查找以及与数值之间的转换。,2
27、020/8/30,Matlab Language,49,8.2 字符串的构造(1),Matlab 用单引号来界定一个字符串。 直接在单引号对内输入字符串内容,得到新字符串 如要输入的字符串中有单引号,则由两个连续的单引号来表示。 若要计算字符串变量的长度(即组成字符串的个数),可用 length 指令。 【例】命名字符串变量,【例】含单引号字符串的输入,ans = 16,2020/8/30,Matlab Language,50,8.2 字符串的构造(2),double 指令: 查看字符串变量的存储內容(即 ASCII 内码) char 指令: 将 ASCII 內码转换为字符串形式 【例】 :
28、字符串与ASCII码的相互转换,sentenceAscii = 73 39 118 101 32 103 111 116 32 97 32 100 97 116 101 33 sentence2 = Ive got a date!,2020/8/30,Matlab Language,51,8.3 一个字符数组变量存储多行字符串,第一种方法是使用二维字符数组(Two Dimensional Character Arrays) 必须先确认每个字符串(即每一行)的长度一样,否则就必须在短字符串结尾补齐空格 【例】多行字符串变量,注意上述语句中空格字符的使用。 departments = ee cs
29、econ,2020/8/30,Matlab Language,52,8.3 、一个变量存储多个字符串 (续),用char 函数创建字符串数组 得到结果和上例的一样;,注意: 该函数能自动为每个字符串补足空格到最长字符串长度;,2020/8/30,Matlab Language,53,8.3 、一个变量存储多个字符串 (续),从二维字符数组访问字符串时,切记要使用 deblank 指令来清除字符串尾部的空格字符 【例】使用deblank命令清除字符串尾部空格 .,2020/8/30,Matlab Language,54,8.4、字符串操作类型的判断,class 或 ischar 指令: 可以用来
30、判断一个变量的类型或它是否为字符串变量。 【例】 : 判断一个变量是否为字符串变量。,2020/8/30,Matlab Language,55,8.4、字符串操作字符串的合并,可以使用方括号“ ”直接连接多个字符串变量,得到一个新字符串变量。 也可以使用strcat()字符串合并函数实现字符串构造 【例】命名字符串变量,str3 = I like MATLAB, JavaScript, and Perl!,注意:strcat函数会把字符串结尾的空格删除,首部空格不删除,2020/8/30,Matlab Language,56,8.4、字符串的操作字符串比较,strcmp 函数: 用于比较字符串
31、的內容的异同 【例】 字符串比较 不相等返回0,相等返回1 有关函数:strncmp() strcmpi() strncmpi(),在MATLAB中,可以对字符串运用关系运算符,但要求两个字符串具有相同的长度,或者其中一个是标量。,8.4、字符串的操作字符串比较,用关系运算符比较字符串,MATLAB提供的一些字符串查找和替换函数如下表所示。,8.4、字符串的操作字符串查找和替换,MATLAB提供的一些数值转换为字符串函数如下表所示。,8.4、字符串的操作字符串与数值间转换,续表,MATLAB提供的一些字符串转换为数值函数如下表所示。,2020/8/30,Matlab Language,64,10 空数组(empty array),有一维是0的数组即为空数组 空数组不占据存储空间 最简单的空数组:0 x 0的矩阵 复杂的空数组:0 x 5 or 10 x 0 例如:a=; b=ones(0,5); 察看空数组:a, b, c % or whos a b c 空数组并非全0数组,2020/8/30,Matlab Language,65,10. 空数组 (续),数组维数的减小 删除数组的某列和行 a = ones(4), a(:,2)= 删除(2-D、3-D)数组的单个元素 使用“全下标”方式,不能删除单个元素 a(1, 2)= %系统会警告信息 使用“单下标”可以删除单个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市2024中国大地出版传媒集团有限公司招聘应届毕业生5人笔试历年参考题库典型考点附带答案详解
- 云南省2024云南省地图院校园招聘2人笔试历年参考题库典型考点附带答案详解
- 临海市2024年浙江临海市发展和改革局直属行政机构市价格监测与成本调查局及下属笔试历年参考题库典型考点附带答案详解
- 2026年常德科技职业技术学院单招职业适应性测试题库及答案详解(夺冠)
- 2026年照明行业智能照明系统创新报告
- 石棉制品生命周期研究
- 2026年广东科学技术职业学院单招职业技能测试题库及参考答案详解(新)
- 2026年广东省潮州市单招职业适应性考试题库附答案详解(满分必刷)
- 2026年广州科技贸易职业学院单招职业技能测试题库及参考答案详解一套
- 人工智能赋能下的教师教学画像动态更新与教学效果评价研究教学研究课题报告
- 2025年消防党组织谈心谈话记录范文
- 基于PLC的立体仓库堆垛机智能控制系统设计
- 暗访人员管理办法
- 模具维护保养管理办法
- 水利项目审批管理办法
- 超声刀的使用与维护指南
- 三基培训 课件
- 三种方法评标计算(自带公式)
- 电气控制与PLC应用技术-西门子S7-200 SMART PLC第三版黄永红习题答案
- 第四章 物质的特性 单元测试-七年级科学上册同步备课系列(浙教版)
- JG/T 118-2018建筑隔震橡胶支座
评论
0/150
提交评论