矩阵及其基本运算

上传人:豆浆 文档编号:50753227 上传时间:2018-08-10 格式:PPT 页数:68 大小:208.50KB
返回 下载 相关 举报
矩阵及其基本运算_第1页
第1页 / 共68页
矩阵及其基本运算_第2页
第2页 / 共68页
矩阵及其基本运算_第3页
第3页 / 共68页
矩阵及其基本运算_第4页
第4页 / 共68页
矩阵及其基本运算_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《矩阵及其基本运算》由会员分享,可在线阅读,更多相关《矩阵及其基本运算(68页珍藏版)》请在金锄头文库上搜索。

1、本章内容: 变量类型; 基本表达式; 数据类型; 运算符与操作符; 关系运算与逻辑运算; 三种程序结构; 程序流控制语句;两种M文件; M文件的调试。 矩阵创建、保存和提取方法; 矩阵元素标识、矩阵函数、矩阵运算、数组运算、 数组函数、数据的输出。第二章 矩阵及其基本运算本章练习:表达式、流程 控制练习;矩阵基本运算 练习 一、变量和数据操作1.变量变量命名 在MATLAB 6.5中,变量名是以字母开头, 后接字母、数字或下划线的字符序列,最 多63个字符。在MATLAB中,变量名区分 字母的大小写。2赋值语句 (1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接 起来的

2、式子,其结果是一个矩阵。例2-1 计算表达式的值,并显示计算结果。 在MATLAB命令窗口输入命令:x=(0:0.1:10000).*pi./360;y1=sin(x);y2=sin(1.05*x);y3=sin(0.1*x);y4=sin(5*x);plot(x,y1+y2);plot(x,y3.*y4);拍现象信号调制3. 预定义变量在MATLAB工作空间中,还驻留几个由系统 本身定义的变量。例如,用pi表示圆周率 的近似值,用i,j表示虚数单位。预定义变量有特定的含义,在使用时,应 尽量避免对这些变量重新赋值。二、MATLAB常用数学函数MATLAB提供了许多数学函数,函数的自 变量规定

3、为矩阵变量,运算法则是将函数 逐项作用于矩阵的元素上,因而运算的结 果是一个与自变量同维数的矩阵。函数使用说明: (1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的模 、字符串的ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、 round,要注意它们的区别。 (4) rem与mod函数的区别。rem(x,y)和 mod(x,y)要求x,y必须为相同大小的实矩阵 或为标量。三、矩阵的建立和引用1 矩阵的建立 直接输入法最简单的建立矩阵的方法是从键盘直接 输入矩阵的元素。具体方法如下:将矩阵 的元素用方括号括起来,按矩阵行的顺序 输入各元素,同

4、一行的各元素之间用空格 或逗号分隔,不同行的元素之间用分号分 隔。 利用冒号表达式建立一个向量冒号表达式可以产生一个行向量,一般格式是 :e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。 在MATLAB中,还可以用linspace函数产生行向 量。其调用格式为: linspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n 是元素总数。 显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。2.引用矩阵的元素 通过下标引用矩阵的元素,例如 A(3,2)=200 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就 是相应元素在内存中的排列顺序。

5、在MATLAB中,矩阵 元素按列存储,先第一列,再第二列,依次类推。例如 A=1,2,3;4,5,6; A(3) ans =2 显然,序号(Index)与下标(Subscript )是一一对应的,以 mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相 互转换关系也可利用sub2ind和ind2sub函数求得。3矩阵拆分(1) 利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩 阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元 素。 A(i:i+m,:)表示取A矩阵第ii+m行的全部元素; A(:,k:k+m)表示取A矩阵第k

6、k+m列的全部元素, A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第k k+m列中的所有元素。 此外,还可利用一般向量和end运算符来表示矩阵下标, 从而获得子矩阵。end表示某一维的末尾元素下标。4. 特殊矩阵的生成 常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生01间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态 分布随机矩阵。例2-2 分别建立33、32和与矩阵A同样大小的零矩 阵。 (1) 建立一个33零矩阵。 zeros(3)(2) 建立一个32零矩

7、阵。 zeros(3,2)(3) 设A为23矩阵,则可以用zeros(size(A)建立 一个与矩阵A同样大小零矩阵。 A=1 2 3;4 5 6; %产生一个23阶矩阵A zeros(size(A) %产生一个与矩阵A同样大小的 零矩阵例2-3 建立随机矩阵: (1) 在区间20,50内均匀分布的5阶随机矩阵 。 (2) 均值为0.6、方差为0.1的5阶正态分布随 机矩阵。 命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5) 用于专门学科的特殊矩阵(1) 魔方矩阵 魔方矩阵有一个有趣的性质,其每行、每 列及两条对角线上的元素和都相等。对于n

8、 阶魔方阵,其元素由1,2,3,n2共n2个整数 组成。MATLAB提供了求魔方矩阵的函数 magic(n),其功能是生成一个n阶魔方阵。例2-5 将101125等25个数填入一个5行5列的 表格中,使其每行每列及对角线的和均为 565。 M=100+magic(5)(2) 帕斯卡矩阵 我们知道,二次项(x+y)n展开后的系数随n 的增大组成一个三角形表,称为杨辉三角 形。由杨辉三角形表组成的矩阵称为帕斯 卡(Pascal)矩阵。函数pascal(n)生成一个n阶 帕斯卡矩阵。例2-7 求(x+y)5的展开式。 在MATLAB命令窗口,输入命令: pascal(6) 矩阵次对角线上的元素1,5

9、,10,10,5,1即为展 开式的系数。四、MATLAB运算1. 算术运算MATLAB的基本算术运算有:(加)、 (减)、*(乘)、/(右除)、(左除)、(乘方) 。 注意,运算是在矩阵意义下进行的,单个 数据的算术运算只是一种特例。(1) 矩阵加减运算假定有两个矩阵A和B,则可以由A+B和 A-B实现矩阵的加减运算。运算规则是:若 A和B矩阵的维数相同,则可以执行矩阵的 加减运算,A和B矩阵的相应元素相加减。 如果A与B的维数不相同,则MATLAB将给 出错误信息,提示用户两个矩阵的维数不 匹配。(2) 矩阵乘法 假定有两个矩阵A和B,若A为mn矩阵,B 为np矩阵,则C=A*B为mp矩阵。

10、(3) 矩阵除法 在MATLAB中,有两种矩阵除法运算:和/,分 别表示左除和右除。如果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。(4) 矩阵的乘方一个矩阵的乘方运算可以表示成Ax,要 求A为方阵,x为标量。2

11、点运算在MATLAB中,有一种特殊的运算,因 为其运算符是在有关算术运算符前面加点 ,所以叫点运算。点运算符有.*、./、.和. 。两矩阵进行点运算是指它们的对应元素 进行相关运算,要求两矩阵的维参数相同 。3. 关系运算MATLAB提供了6种关系运算符:(大于)、=(大于或等 于)、=(等于)、=(不等于)。它们的含义 不难理解,但要注意其书写方法与数学中 的不等式符号不尽相同。关系运算符的运算法则为:(1) 当两个比较量是标量时,直接比较两 数的大小。若关系成立,关系表达式结果 为1,否则为0。(2) 当参与比较的量是两个维数相同的矩 阵时,比较是对两矩阵相同位置的元素按 标量关系运算规则

12、逐个进行,并给出元素 比较结果。最终的关系运算的结果是一个 维数与原矩阵相同的矩阵,它的元素由0或 1组成。(3) 当参与比较的一个是标量,而另一个是 矩阵时,则把标量与矩阵的每一个元素按 标量关系运算规则逐个比较,并给出元素 比较结果。最终的关系运算的结果是一个 维数与原矩阵相同的矩阵,它的元素由0或 1组成。例2-8 产生5阶随机方阵A,其元素为10,90区间 的随机整数,然后判断A的元素是否能被3整除。(1) 生成5阶随机方阵A。 A=fix(90-10+1)*rand(5)+10)(2) 判断A的元素是否可以被3整除。P=rem(A,3)= =0 其中,rem(A,3)是矩阵A的每个元

13、素除以3的余数 矩阵。此时,0被扩展为与A同维数的零矩阵,P 是进行等于(= =)比较的结果矩阵。4. 逻辑运算MATLAB提供了3种逻辑运算符:56,0,67,-45,0(2) 找出大于4的元素的位置。 find(A4)5. 矩阵的转置与旋转 矩阵的转置 转置运算符是单撇号()。 矩阵的旋转 利用函数rot90(A,k)将矩阵A旋转90的k倍 ,当k为1时可省略。6矩阵的翻转 矩阵的左右翻转 对矩阵实施左右翻转是将原矩阵的第一列 和最后一列调换,第二列和倒数第二列调 换,依次类推。MATLAB对矩阵A实 施左右翻转的函数是fliplr(A)。 矩阵的上下翻转 MATLAB对矩阵A实施上下翻转

14、的函数是 flipud(A)。五、字符串在MATLAB中,字符串是用单撇号括起来的 字符序列。MATLAB将字符串当作一个行向量,每个元 素对应一个字符,其标识方法和数值向量 相同。也可以建立多行字符串矩阵。字符串是以ASCII码形式存储的。abs函数可 以用来获取字符串矩阵所对应的ASCII码数 值矩阵。相反,char函数可以把ASCII码矩 阵转换为字符串矩阵。例2-13 建立一个字符串向量,然后对该向量 做如下处理: (1) 取第15个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 将字符串中的小写字母变成相应的大写 字母,其余字符不变。 (4) 统计字符串中小写字母的个

15、数。命令如下: ch=ABc123d4e56Fg9; subch=ch(1:5) %取子字符串 revch=ch(end:-1:1) %将字符串倒排 k=find(ch=a %找小写字母的位置 ch(k)=ch(k)-(a-A); %将小写字母变成相应 的大写字母 char(ch) length(k) %统计小写字母的个数六、结构数据和单元数据1.结构数据结构矩阵的建立与引用结构矩阵的元素可以是不同的数据类型,它能 将一组具有不同属性的数据纳入到一个统一的 变量名下进行管理。建立一个结构矩阵可采用 给结构成员赋值的办法。具体格式为:结构矩阵名.成员名=表达式其中表达式应理解为矩阵表达式。 结构

16、成员的修改可以根据需要增加或删除结构的成员。例如要给 结构矩阵a增加一个成员x4,可给a中任意一个元 素增加成员x4: a(1).x4=410075; 但其他成员均为空矩阵,可以使用赋值语句给它 赋确定的值。 要删除结构的成员,则可以使用rmfield函数来完 成。例如,删除成员x4: a=rmfield(a,x4);2 单元数据 单元矩阵的建立与引用 建立单元矩阵和一般矩阵相似,只是矩阵元素用 大括号括起来。 可以用带有大括号下标的形式引用单元矩阵元素 。例如b3,3。单元矩阵的元素可以是结构或单元 数据。 可以使用celldisp函数来显示整个单元矩阵,如 celldisp(b)。还可以删除单元矩阵中的某个元素。七.M文件的编辑与调试

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号