版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 数组的运算基础,几点说明: MATLAB运算的基本单元是实数或复数元素组成的长方 形矩阵,MATLAB的大部分运算或命令都是在矩阵运 算的意义下执行的。 变量与常量:1*1矩阵 一维数组: 1*n矩阵N维 行向量:1*n矩阵 N维列向量:n*1矩阵 在MATLAB中,不需对矩阵的维数和类型进行说明, MATLAB会根据用户所输入的内容自动进行配置。,基本运算单元矩阵,要用MATLAB做矩阵运算,首先要将矩阵直接输入到 MATLAB中去,其中最方便的是将矩阵直接输入。矩阵的 输入须遵循以下规则: 必须用中括号把所有矩阵元素括起来。 同一行的不同元素之间数据元素用空格或逗号( ,)间隔。
2、用分号( ; )指定一行结束。 也可分成几行输入,用回车代替分号。 数据元素可是数值、变量、表达式或函数,系统将自动计算。,一、矩阵的构造,方法一 直接输入,例1,A=1,2,3,4;5 6 7 8;9 10 11 12;13 14 15 16,注意逗号、空格和分号的用法,分成几行输入,用回车代替分号,例3,a=1; b=2; c=3; x=5 b c; a*b a+c c/b,元素是表达式,格式1 x=first:last 或x=first:last 创建从first开始,加1计数,到last结束的行向量,方法二 利用线性等间距生成向量矩阵,X= 1 2 3 4 5 6 7 8 9 10,a
3、ns= 1 2 3 4 5 6 7 8 9 10,赋给MATLAB的永久变量ans,X=1,2,3,4,5,6,7,8,9,10,格式2 x=first:increment:last 或 x=first:increment:last 创建从first开始,加increment计数,到last结束的行向量,ans = 100 93 86 79 72 65 58 51,当increment0为不大于last的最小数,当increment0为不小于last的最大数,ans = 0 0.7854 1.5708 2.3562 3.1416,例 a=linspace(2,9,6) a = 2.0000 3
4、.4000 4.8000 6.2000 7.6000 9.0000,方法三 利用函数生成,格式1 linspace(a,b,n) 创建从a开始,到b结束,有n个元素的线性等分行向量,n缺省值为100。,例 a=logspace(-1,-3,3) a = 0.1000 0.0100 0.0010,方法三 利用函数生成,格式2 logspace(a,b,n) 创建从10a开始,到10b结束,有n个元素的线性等分行向量,n缺省值为50。,注意:将a到b平均分成n等分,设分点是x1, ,xn,方法四 利用内部函数产生,方法五 利用M文件产生,三、多维矩阵(数组)的创建,以三维矩阵为例。三维矩阵由行、列
5、和页组成,第三维称为页,每一页包含一个由行和列组成的二维数组。,例 要求输入一个2行、2列、3页的三维矩阵,其第1、2、3页元素分别为:, a=zeros(3,2,3); a(:,:,1)=1 1;3 3;2 0; a(:,:,3)=4;,如未对某元素、某行或某页赋值,其值为0,四、生成大矩阵,在组成较大矩阵时,可以将小矩阵作为它的元素。,左右拼装(要求矩阵的行数相同), D=7 8 9 E=A;D,上下拼装(要求矩阵的列数相同),例, A=1 2 3;4 5 6; D=7 8 9; E=A;D,第二节 矩阵的操作,一、矩阵元素的操作,A(m,n):第m行,第n列元素, A(2,3) ans
6、= 6,A(m,:):第m行元素(冒号表示全部), A(2,:) ans = 4 5 6,A(:,n):第n列元素, A(:,3) ans = 3 6 9,A(m1:m2,n1:n2):第m1行到第m2行和第n1列到第n2列的所有元素。, A(1:2,2:3) ans = 2 3 5 6,A(:):得到一个长列矢量,该矢量的元素按矩阵的列进行排列。, A(:) ans = 1 4 7 2 5 8 3 6 9,矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零(变维结构)。, A(5,5)=10 A =
7、 1 2 3 0 0 4 5 6 0 0 7 8 9 0 0 0 0 0 0 0 0 0 0 0 10,删除子块:如果将矩阵的子块赋值为空矩阵,则相当于消除了相应的矩阵子块。,例,A(4:5,:)=,A = 1 2 3 0 0 4 5 6 0 0 7 8 9 1 0,例,B(:,4:5)=,B = 1 2 3 6 7 8 9 12,例 A=1 2 3;4 5 6;D=7 8 9;,A = 1 10 3 4 5 6, A(1,2)=10, A(1,:)=D,A = 7 8 9 4 5 6, A(1:2,1:2)=1 2;3 4,A = 1 2 3 3 4 6, A=5 6;7 8,A = 5 6
8、 7 8,为矩阵元素赋值,用向量为矩阵某一行元素赋值,为矩阵的某一块元素赋值,为矩阵元素赋值的同时,改变矩阵的维数(结构), B=A(2:-1:1,1:3), C=A(end:-1:1,:), D=A C(:,1 3),B = 4 5 6 1 2 3,C = 7 8 9 4 5 6 1 2 3,D = 1 2 3 7 9 4 5 6 4 6 7 8 9 1 3, A=1 2 3;4 5 6;7 8 9, B=A(2:-1:1,1:3), C=A(end:-1:1,:), D=A C(:,1 3),B = 4 5 6 1 2 3,C = 7 8 9 4 5 6 1 2 3,A = 1 2 3 4
9、 5 6 7 8 9,D = 1 2 3 7 9 4 5 6 4 6 7 8 9 1 3,一、矩阵元素的处理方法,find( )指令:特殊要求的矩阵元素定位, A=1 2 3;4 5 6; m,n=find(A3) m = 2 2 2 n = 1 2 3, X=0 1 -2 -6 -3 7 9; p=find(abs(X)3) p = 4 6 7,一、矩阵元素的处理方法,转置:操作符 复数矩阵的转置:先转置再求矩阵元素的复共轭数值,A = 1 2 3 4 5 6, A ans = 1 4 2 5 3 6,B=1+2i 3+4i 5-6i 7-8i, B ans = 1.0000 - 2.000
10、0i 5.0000 + 6.0000i 3.0000 - 4.0000i 7.0000 + 8.0000i,一、矩阵元素的处理方法,find( )指令:特殊要求的矩阵元素定位, A=1 2 3;4 5 6; m,n=find(A3) m = 2 2 2 n = 1 2 3, X=0 1 -2 -6 -3 7 9; p=find(abs(X)3) p = 4 6 7,二、矩阵大小查询(第五节),m,n=size(A):返回矩阵的行列数m与n。 length(A)=max(size(A):返回行数或列数的最大值。,A=1 2 3;4 5 6; m,n=size(A) m = 2 n = 3,len
11、gth(A) ans = 3 max(size(A) ans = 3,m=size(A,1) m = 2 n=size(A,2) n = 3,二、矩阵大小查询(第五节),numel(A):返回矩阵的元素个数。 rank(A):求矩阵的秩,A=1 2 3;4 5 6; m=numel(A) m = 6,rank(A) ans = 2,三、矩阵的其他操作,A = 1 2 3 4 5 6,flipud(A): 矩阵作上下翻转 fliplr(A):矩阵作左右翻转 rot90(A): 逆时针旋转90, flipud(A) ans = 4 5 6 1 2 3, fliplr(A) ans = 3 2 1
12、6 5 4, rot90(A) ans = 3 6 2 5 1 4, diag(A) ans = 1 5 9, tril(A) ans = 1 0 0 4 5 0 7 8 9, triu(A) ans = 1 2 3 0 5 6 0 0 9,diag(A):提取矩阵A的对角元素,返回列向量 tril(A):提取A的下三角矩阵 triu(A):提取A的上三角矩阵 diag(V):以列向量V作对角元素创建对角矩阵,A = 1 2 3 4 5 6 7 8 9,三、矩阵的其他操作,V=2;5;8;7, diag(V) ans = 2 0 0 0 0 5 0 0 0 0 8 0 0 0 0 7,MATL
13、AB 矩 阵 运 算,第六节 矩阵的关系运算和逻辑运算,MATLAB的运算符有三种类型:算术运算符、关系运算符、逻辑运算符。在前面已经介绍了算术运算符,这里我们着重介绍后两种运算符。,一、关系运算符,1、关系运算符(结果为非,则返回0; 结果为真,则返回1),例如:键入关系式 a=2+2=4 a = 1, a=(2+2=4) a = 1,假设有:A=1 2 -1 -5 B=0 2 3 1,一、关系运算符,关系运算可用来比较两个同样大小的矩阵,或比较一个矩阵与一个标量。矩阵与标量比较时,矩阵的每一个元素与标量比较,结果与原矩阵大小一样。,2、逻辑运算符(逻辑量只取0(假)和1(真)两个值),二、
14、逻辑运算符,基本逻辑运算真值表,逻辑运算可用来比较两个同样大小的矩阵,或比较一个矩阵与一个标量。在处理逻辑运算时,如果运算的数为0,MATLAB认为其为0(假),而任何数不等于0,则认为是1(真)。,设有:A=5 -4 0 -0.5;B=0 1 0 9,二、逻辑运算符,二、逻辑运算符,MATLAB具有两种对矩阵元素群进行逻辑运算的函数:all(全为真)和any(不全为假),其输入量为矩阵,且按列进行运算。, A=magic(6) A = 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14
15、16 4 36 29 13 18 11, p=(rem(A,3)=0) p = 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0, u=p|p u = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, all(p) ans = 0 0 0 0 0 0, all(u) ans = 1 1 1 1 1 1, any(p) ans = 1 1 1 1 1 1,三、逻辑运算函数(p47表2-3),运算符 适用于两同
16、阶矩阵或矩阵与标量之间的运算 对应元素的加减,四、矩阵的加减运算,例:已知矩阵A和B,且 A=21,2,4;7,13,19;1,8,17; B=12 25 24;11 13 9;6 8 1; 计算CAB,DAB 和 EA3。, C=A+B C = 33 27 28 18 26 28 7 16 18, D=A-B D = 9 -23 -20 -4 0 10 -5 0 16, E=A+3 E = 24 5 7 10 16 22 4 11 20,五、矩阵的乘法运算,运算符 * 适用于前一矩阵的列数和后一矩阵行数相同或者其中为标量的情况。,例:已知矩阵A和B,且 A=21,2,4;7,13,19;1,
17、8,17; B=12 25 24;11 13 9;6 8 1; 试求CAB和DA3。, C=A*B C = 298 583 526 341 496 304 202 265 113, D=A*3 D = 63 6 12 21 39 57 3 24 51,六、矩阵的除法运算,运算符: 右除 / 左除 右除表示为:A/B=AB-1 (B为方阵且非奇异) 左除表示为:AB=A-1B (A为方阵且非奇异),例:已知矩阵A和B,且 A=21,2,4;7,13,19;1,8,17; B=12 25 24;11 13 9;6 8 1; 试计算AB和A/B。, A/B ans = -1.8336 5.6985
18、-3.2801 0.5535 0.7891 -1.3871 0.7496 0.0478 -1.4201, AB ans = 0.5081 1.1168 1.1429 0.3216 -0.6186 0.2857 0.1717 0.6960 -0.1429,注 矩阵的除法运算实际是求AX=B的解的过程。当A为非奇异矩阵时,结果 是最小二乘解,即矩阵除法可以找到使|AX-B|误差绝对值最小的X。,七、矩阵的乘方运算,运算符: 要求乘方运算的对象为方阵 Ap表示A自乘p次(p为标量), A(-1) ans = 0.0486 -0.0014 -0.0099 -0.0704 0.2484 -0.2611
19、0.0303 -0.1168 0.1823, A2 ans = 459 100 190 257 335 598 94 242 445, A3 ans = 10529 3738 6966 8340 9653 17559 4113 6894 12539,例:已知矩阵 A=21,2,4;7,13,19;1,8,17; 试计算A(-1),A2, A3,八、矩阵的点运算,运算符: . 为实现与矩阵相关的标量运算而设计的。 与矩阵的常规运算不同,是针对于矩阵中的元素定义的。 分类:点乘 .* 点乘方 . 点右除 ./ 点左除 .,例:已知矩阵A和B,试求AB,A.*B,A.3,A./2和A.B。其中 A=
20、1 2;3 4; B=5 6;7 8;, A*B ans = 19 22 43 50, A.*B ans = 5 12 21 32, A.3 ans = 1 8 27 64, A./2 ans = 0.5000 1.0000 1.5000 2.0000, A.B ans = 1 64 2187 65536,九、求逆矩阵,函数 inv() 矩阵A可逆,则矩阵A的逆矩阵是唯一的。, X=inv(G) X = 5 2 -2 -2 -1 1 0 -2 1, I=inv(G)*G I = 1 0 0 0 1 0 0 0 1,例:求一矩阵G的逆矩阵,并验证所得结果。 G=1 2 0;2 5 -1;4 10
21、 -1;,G=1 2 0;2 5 -1;4 10 -1,十、求特征值,函数 eig( ) 设A为n阶矩阵, 是一个数,如果方程Ax=x存在非零解向量,则称为A的一个特征值,相应的非零向量x称为特征值对应的特征向量。, d=eig(G) d = 3.7321 0.2679 1.0000, V,D=eig(G) V = -0.2440 -0.9107 0.4472 -0.3333 0.3333 0.0000 -0.9107 -0.2440 0.8944 D = 3.7321 0 0 0 0.2679 0 0 0 1.0000,函数:poly( )。,十一、求特征多项式,G=1 2 0;2 5 -1
22、;4 10 -1;, poly(G) ans = 1.0000 -5.0000 5.0000 -1.0000, round(poly(G) ans = 1 -5 5 -1,函数 det( ) 若将矩阵看做是行列式,可求相应的行列式值。 例:已知矩阵A=1 2 3 4;2 3 4 1 ;3 4 1 2;4 1 2 3 求其对应的行列式值。,十二、求方阵的行列式, A=1 2 3 4;2 3 4 1 ;3 4 1 2;4 1 2 3 A = 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3, det(A) ans = 160,十三、其他常用的矩阵函数,线性方程组的一般矩阵形式表示如下: AXB(XAB) 若方程组有解,则X=A-1B=AB(XBA-1=B/A)。,十四、求线性方程组,例:求下列线性方程组的根, A=2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44916-2024船舶和海上技术船用超低温闸阀设计与试验要求
- 工作总结之仿真实习总结报告
- 2023年环保特种电线电缆投资申请报告
- 银行内部资金调拨制度
- 部编版小学一年级语文阅读练习题四十篇+全册练习题+全册《识字表》生字带拼音三词
- 热力管道施工合同
- 陕西省汉中市宁强县2023-2024学年八年级上学期期末学业水平检测数学试卷(含解析)
- 《保护珍稀野生动物》课件
- 反腐倡廉课件
- 广东省阳东广雅学校2025届高三第二次诊断性检测语文试卷含解析
- 购物中心安全风险评估报告
- 消防安全重点单位微型消防站备案表
- 高速铁路轨道平顺性技术研究
- “思想政治工作”与“思想政治教育”概念辨析
- ISO22000-2018食品安全管理体系内审及管理评审全套资料
- 国开中国当代文学专题形考任务2-3-5-6答案
- 合同法期末复习资料
- 物业项目信报收发员作业规程
- 千年伟人马克思光辉的一生简介课件
- 地下水与环境课件
- 国开电大本科《管理英语3》机考真题(第二套)
评论
0/150
提交评论