第一章-matlab矩阵运算与数组运算

上传人:F****n 文档编号:99559118 上传时间:2019-09-19 格式:DOC 页数:7 大小:37KB
返回 下载 相关 举报
第一章-matlab矩阵运算与数组运算_第1页
第1页 / 共7页
第一章-matlab矩阵运算与数组运算_第2页
第2页 / 共7页
第一章-matlab矩阵运算与数组运算_第3页
第3页 / 共7页
第一章-matlab矩阵运算与数组运算_第4页
第4页 / 共7页
第一章-matlab矩阵运算与数组运算_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《第一章-matlab矩阵运算与数组运算》由会员分享,可在线阅读,更多相关《第一章-matlab矩阵运算与数组运算(7页珍藏版)》请在金锄头文库上搜索。

1、第一章 矩阵运算与数组运算 MATLAB中最基本的数据对象就是数组或矩阵,标量可看作是1*1 的矩阵,向量可看作是l*n或n*l的矩阵一维数组是向量,二维数组便是矩 阵,还有三维甚至更高维的数组。标量运算是数学的基础,然而,当需要对多个 数执行同样的运算时,采用数组或矩阵运算将非常简洁和方便141 创建矩阵1直接定义例子键入: A1 2 3;4 5 6输出: A1 2 34 5 6 这里A为一个2行3列的数组或矩阵空格或逗号用于分隔某一行的元素,分号表示开始新的一行键入: A(2,3)0 将第2行,第3列的元素置为0输出: A= 1 2 3 4 5 0 2一维数组的简单构造 前面我们通过键人矩

2、阵或数组中的每个元素来输人一个矩阵或数组,当数组中的元素有成百上千时,怎么办呢?对于一维数组有两种简单的输人格式。 例如, X=0:0.1:1 从0到l,增量为0.1 X=linspace(0,pi,11) 11 个从 0到pi的等间隔数,在MATLAB中这两种创建数组的方式是最常见的上述数组创建形式所得到的数组的元素之间是线性分隔的特殊情况,当需要对数分隔的数组时,MATLAB提供了函数logspace 格式:xlogspace(first,last,n) 创建从10的first次方开始,到10的last次方结束,有n个元素的对数分隔行向量x. 有时所需的数组不具有易于描述的线性或对数分隔关

3、系,这时使用数组编址和表达式结合的功能可避免每次一个地输人数组元素例子 键入: a=1:5; b=1:2:9;c=b a输出: C 1 3 5 7 8 1 2 3 4 5 创建的数组c,由b中元素和a中元素构成又如,键入: d=a(1:2:5)1 0 1输出: d= 1 3 5 1 0 1 上述所创建的数组都是行向量,如何创建列向量呢?可使用转置算子() 把行向量变成列向量如键入: a=1:4;表示从1到4,增量为1的行向量 b=a 表示向量的转置输出: b 1 2 3 4 有两种转置的符号: l)当数组是复数时,()产生的是复数共轭转置; 2) ()只对数组转置,但不进行共轭 3一维数组的操

4、作 例子键入:x0.1*pi.2*pi.3*pi.4*pi.5*pi.6*pi.7*pi.8*pi.9*pi pi ysin(x)输出: y= Columns 1 through 7 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 Columns 8 through 11 0.8090 0.5878 0.3090 0.0000 在 MATLAB中,数组元素用下标访问,如 y(2)是y的第2个元素例如,键入: y(3) 表示y的第3个元素输出: ans 0.5878 为了同时访问一块元素,MATLAB用冒号来表示键入: x(1:5)输出: ans= 0 0

5、.3124 0.6283 0.9425 1.2566键人: y(3:-1:1)输出: ans= 0.5878 0.3090 0 3:-1:1表示从3开始减1计数,到1为止又如键入: x(2:2:7)输出: ans= 0.3142 0.9425 1.5708 2:2:7表示从2开始加2计数,到7为止再如 键人: y(8 2 9 1)输出: ans= 0.8090 0.3090 0.5878 0 这里是按照数组8 2 9 1提供的次序来提取y数组中的元素 4矩阵的剪裁与拼接 从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,冒号“:”是非常重要的剪裁工具。 例子键入: A=1 2 3;4 5 6;7

6、 8 9; A(3,:) A的第3行 输出: ans 7 8 9 键入: A(:,l) A的第 1列 输出: ans= 1 4 7键入: B=A(2:3:,) A的第2,3行输出: B 4 5 6 7 8 9键人: CA(1:2,1 3) A的第l,2行,第1,3 列输出: C 1 3 4 6 还有A(1:2:3,3:-1:1)想想将输出什么? 将几个矩阵接在一起称为拼接,左右拼接行数要相同,上下拼接列数要相同例如,键入: DC,zeros(2,1)输出: D 1 3 0 4 6 0键入: ED ; eye(2),ones(2,l)输出: E 1 3 0 4 6 0 1 0 1 0 1 l提示

7、:A(:) 逐列提取A中的所有元素作为一个列向量 A(I) 把A看作列向量则:X提取其中第i个元素A(r,c) 提取A中,由索引向量r定义的行,和由索引向量c定义的列所构成的A的子数组 A(r,:) 提取A中,由索引向量r定义的行,和全部列所构成的A的子数组 A(:,c) 提取A中,由全部行,和由索引向量c定义的列所构成的A的子数组142 数组运算 1标量一数组运算 标量与数组的加、减、乘、除和点乘方(.)是对数组的每个元素进行运算,得到同样大小的数组例子键入: al:5;3*a-5输出: ans2 1 4 7 10键入: a.2输出: ans1 4 9 16 25 2数组-数组运算 当两个数

8、组具有相同大小时,加、减、点乘(.*),点除(./).和点乘方运算()是按元素对元素方式进行的例如,键入: g1 2 3;5 6 7;8 9 10; h= 1 1 1;2 2 2;3 3 3; g.*h输出: ans= 1 2 3 10 12 14 24 27 30提示:设 a=a1 a2 a3,b=b1 b2 b3,c=标量标量加法 aca1+c a2+c a3+c;标量乘法 a*c=a1*c a2*c a3*c;数组加法 aba1+b1 a2+b2 a3+b3;数组乘法 a.*b=a1*b1 a2*b2 a3*b3;数组右除 a./b=a1/b1 a2/b2 a3/b3;数组左除 a.b=

9、b1/a1 b2/a2 b3/a3;数组求幂 a.c=a1c a2c a3c;c.a=ca1 ca2 ca3;a.b=a1b1 a2b2 a3b3; l43 矩阵的运算 MATLAB提供了下列矩阵运算 + 加法; - 减法;转置运算;* 乘法; 乘幂; 左除; 右除 除除法外其他运算都与线性代数中定义的一样这里只介绍一下除法运算 设A是可逆矩阵 1)AXB的解是A左除B,即XAB,意为用A-1左乘以B 2)XAB的解是A右除B,即XBA,意为用A-1右乘以B注意: 1)当 A为方阵,p1为整数时,Ap表示 A自乘 p次; 2)当 A和P均为矩阵时,不能计算AP144 函数1.常用的数学函数单变

10、量数学函数的自变量可以是数组,此时,输出的是各元素的函数值构成的同规格数组例子输人: a1 2 3;4 5 6;sin(a)输出: ans 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 MATLAB中的常用数学函数有 三角函数:正弦sin(x),双曲正弦sinh(x),反正弦asin(x),反双曲正弦asinh(x),余弦cos(x),正切tan(x),余切cot(x),正割sec(x),余割csc(x)等 指数函数:exp(x),自然对数log10(x),以 2为底的对数log2(x),平方根sqrt(x)等 整值函数:朝零方向取整fix(x),朝

11、- 方向取整floor(x),朝+ 方向取整ceil(x),四舍五人到最接近的整数round(x),符号函数sign(x)等 其他数学函数:绝对值或复数的幅值abs(x)等 2数组特征及矩阵操作函数 size(A) 返回一个二元素向量,第一个元素为A的行数,第二个元素为A的列数 size(A,1) 返回 A的行数 siZE(A,2) 返回 A的列数 length(A) 返回max(size(A)flipud(A) 矩阵作上下翻转 fliplr(A) 矩阵作左右翻转 diag(A) 提取A的对角元素,返回列向量 diag(v) 以向量v作对角元素创建对角矩阵 最大值 max,最小值min,求和sum,求平均值mean,按升序排列sort等函数,只有当它们作用于向量时才有意义它们也可作用于矩阵,此时产生一个行向量,行向量的每个元素是函数作用于矩阵相应列向量的结果例子键人: a-4.5,5,9,7,-2.8,3.5,9.5,5.4,7.3; min(a),m,im=min(a),M,iM=max(a),ra,ir=sort(a)输出: ans= -4.5000 m=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

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