MATLAB教学最新矩阵与数组2-4

上传人:宝路 文档编号:48331163 上传时间:2018-07-13 格式:PPT 页数:62 大小:718.58KB
返回 下载 相关 举报
MATLAB教学最新矩阵与数组2-4_第1页
第1页 / 共62页
MATLAB教学最新矩阵与数组2-4_第2页
第2页 / 共62页
MATLAB教学最新矩阵与数组2-4_第3页
第3页 / 共62页
MATLAB教学最新矩阵与数组2-4_第4页
第4页 / 共62页
MATLAB教学最新矩阵与数组2-4_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《MATLAB教学最新矩阵与数组2-4》由会员分享,可在线阅读,更多相关《MATLAB教学最新矩阵与数组2-4(62页珍藏版)》请在金锄头文库上搜索。

1、第二章 矩阵与数组2.1 概述在MATLAB中的基本处理单位是数值矩阵或者数值向量, 统一将矩阵或者向量(一维数组,行/列向量)称之为数组。1 变量与常量变量:指在程序运行过程中需要改变数值的量,每一个变 量具有一个名字。命名规则常量:指在程序运行过程中不需要改变数值的量,常量亦 具有名字,定义方法同变量。2 数组一般,数组是有序数据的集合,在大多数编程语言中, 数组的每一个成员(元素)都属于同一种数据类型,它们 使用同一个数组名称和不同的下标来确定数组中的成员。对于M语言,大多数数据类型的数组每一个元素都是同一 个数据类型的元素,而对于其特殊的元胞数组(第三章)则 不然。3 向量从编程语言的

2、角度来看,向量其实就是一维数组,但从数 学的角度来看,向量就是 或者 的矩阵,即行 向量或列向量,和 都是一维数组,但从数学的角度上看,分别被称为列向量和行向量。MATLAB的基本运算单位就是矩阵和向量。4 矩阵矩阵就是二维的数组。2.2 创建向量从编程语言的角度,向量就是一维数组。在MATLAB 中创建向量可以使用不同的方法。例21 利用逐个输入元素的方法在MATLAB中创建 向量。(whos/who函数,help/type函数)第二种创建向量的方法可以利用运算符“:”。例22 利用冒号运算符创建向量。注:用冒 号运算符 创建向量 时不需方 括号。利用冒号运算符创建向量的基本语法如下:XJ:

3、INC:K其中:J为向量的第一个元素,而K为向量的最后一个元素,INC为 向量元素递增的步长;J,INC,K之间必须用“:”间隔;若在表达式中忽略INC,则默认的递增的步长为1;INC可以为正数也可以为负数,若INC为正数,则必须JK, 若INC为负数,则必须JK,否则创建的为空向量。创建向量的第三种方法是使用函数linspace 和logspaceLinspace是用来创建线性间隔向量的函数,基本语法为x=linspace(x1,x2,n)其中: x1为向量的第一个元素, x2为向量的最后一个元素, n 为向量具有的元素个数,间隔的计算公式 。若在表达式中忽略n,则系统默认地将向量设置为10

4、0个元 素。例24 使用linspace函数创建向量。函数logspace被用来创建对数空间的向量。基本语法为:x=logspace(x1,x2,n)其中: x1为向量的第一个元素, x2为向量的最后一个元素, n 为向量具有的元素个数,元素间隔按照对数空间的间隔设 置。若在表达式中忽略n,则系统默认地将向量设置为50个元素 。例25 使用logspace函数创建向量。上面创建的都是行向量,即创建的都 是一行n列的二维数组。如果需要创建 列向量,即n行一列的数组,则需要使 用分号作为元素与元素之间的间隔或 者直接使用转置运算符“ ”。2.3 创建矩阵在编程语言中,矩阵和二维数组一般指的是同一

5、个概念,在M语言中,矩阵的元素可以为任意的 MATLAB数据类型的数值或者对象。创建矩阵的方 法也有多种,不仅可以直接输入元素,还可以使用 MATLAB的数组编辑器编辑矩阵的元素。2.3.1直接输入法直接输入矩阵元素创建矩阵的方法适合创建元素较 少的矩阵。例27 用直接输入矩阵元素的方法创建矩阵。可以将矩阵的每一行或每一列看作一个向量,矩阵就是由 若干向量组合而成的。2.3.2 数组编辑器(上节课留下的问题)在工作空间浏览器中可以察看当前工作空 间中保存的各种数据的信息,利用工作空间 浏览器,在相应的变量上单击鼠标右键,通 过弹出的快捷菜单可以对矩阵或者向量进行 编辑,也可以删除、重命名工作空

6、间的变量 。对矩阵或者向量元素的编辑可以通过数组 编辑器完成。可以在工作空间中直接双击变量,打开数 组编辑器。在命令行窗口中直接输入元素较多的向量或者矩阵时比较麻烦 。所以,可以利用数组编辑器完成大的矩阵的编辑。具体方法 如下:首先在命令行窗口中创建一个新的变量,可以为这个变量赋 任意的数值,例如在MATLAB的命令行窗口中键入:A1然后通过工作空间浏览器打开数组编辑器,并在数组编辑器 中加载相应的变量。在数组编辑器的工具栏中,分别修改矩阵的行数和列数,则 数组编辑器将自动扩充矩阵,将未定义的元素赋初值为零,这 时就可以双击任意元素来修改矩阵的元素的值了。2.4 索引讨论怎样访问和操作向量或者

7、矩阵元素的问题 。就是利用矩阵或者向量元素的索引来完成相应 的操作。注意:MATLAB的矩阵或者数组的索引起始值为1 。(C语言的数组索引下标的起始数值为0)2.4.1向量元素的访问访问向量的元素只要使用相应元素的索引即可 。例28 访问向量中的元素 说明:访问向量元素的结果是创建新的向量。访问向量的元素直接给出元素在向量中的序 号,元素的序号不仅可以是单一的整数,还 可以是元素序号组成的向量。访问向量元素时,序号的数值必须介于数值 1到end之间,关键字end表示向量中最后一个 元素的序号。(如何单独取列或者行的技巧)?例:对向量的元素进行赋值上例中,对向量的第15个元素赋值,在赋值之前向量

8、的第11 到 15个元素不存在,将自动创建这些元素。并且为没有明确 赋值的元素赋默认值0。2.3.2 数组编辑器(上节课留下的问题)在工作空间浏览器中可以察看当前工作空 间中保存的各种数据的信息,利用工作空间 浏览器,在相应的变量上单击鼠标右键,通 过弹出的快捷菜单可以对矩阵或者向量进行 编辑,也可以删除、重命名工作空间的变量 。对矩阵或者向量元素的编辑可以通过数组 编辑器完成。可以在工作空间中直接双击变量,打开数 组编辑器。(在A(m,n)处输入一个数值 即可)2.4.2 矩阵元素的访问访问矩阵的元素也需要使用矩阵元素的索 引,有两种方式:1、使用矩阵元素的行列全下标形式。2、使用矩阵元素的

9、单下标形式(二维数 组是按列存储的)。例210访问矩阵的元素。MATLAB工作空间中具有一个55的矩阵, 该矩阵是五阶的幻方,通过命令行获取矩阵 的第二行、第四列的元素。说明:使用了MATLAB函数magic创建幻方。所谓幻方,就 是n阶的方阵,该方阵的行元素和列元素的和都相等( sum(1:5,:)等验证)。使用全下标的形式访问矩阵元素的方法简单、直接, 同线性代数的矩阵元素的概念一一对应。矩阵元素的单下标是矩阵元素在内存中存储的序列号 ,一般地,同一个矩阵的元素存储在连续的内存单元 中。(注意MATLAB中数组按列存储)矩阵元素的单下标与全下标之间的对应关系如下:以 mn的矩阵为例,该矩阵

10、的第i行第j列的元素全下标表 示为单下标l=(j-1) m+i为了方便全下标和单下标之间的转换, MATLAB提供了两个函数分别完成两者之间的 相互转化。sub2ind:根据全下标计算单下标。例子:a=1:3;4:6;7:9;b=sub2ind(size(a),2,1)ind2sub:根据单下标计算全下标。c1,c2=ind2sub(size(a),7)表21 使用索引访问矩阵元素的方法矩阵元素的访 问 说明 A(i,j)访问矩阵A的第i行第j列上的元素,i和j为标 量 A(I,J)访问由向量(如I=1:3,J=1:end)I和J指定的矩阵A 中的元素 A(i,:)访问矩阵A中第i行的所有元素

11、A(:,j)访问矩阵A中第j列的所有元素A(:)访问矩阵A中的所有元素A(l)使用单下标访问 矩阵A中元素,其中l为标量 A(L)访问由向量L(用 )指定的矩阵A的元素,向 量L中的元素为矩阵元素的单下标数值。2.5 基本运算2.5.1 矩阵生成函数表22 MATLAB的矩阵生成函数函数说明zeros产生元素全0的矩阵ones产生元素全1的矩阵eye产生单位方阵rand产生均匀分布的随机数矩阵,数值范围(0,1) (可以设定随机种子,关闭MATLAB后每次种 子都一样为0.9501) randn产生均值为0,方差为1的正态分布的随机数矩 阵。(数值有正有负) diag获取矩阵的对角线元素,也可

12、生成对角矩阵 ?2.5.2基本矩阵运算这些规则和函数都分别和线性代数的基本概念和运算规则对应 。运算命令说明 A矩阵转置 An(power函数)矩阵求幂 A*B,a.*b矩阵相乘 A/B、 AB矩阵右除、矩阵左除(可用于 解方程,在逆矩阵存在时等价 ) A+B 、A-B矩阵相加、减 eig求矩阵的特征向量和特征值 inv矩阵求逆(若逆矩阵不存在或者 不是方阵时,怎么办?广义逆矩 阵) det求矩阵的行列式 rank求矩阵的秩例 矩阵运算示例求解方程组把A的逆阵左乘以b,MATLAB就记作A,称为左除。如果原始方程的未知矩阵在左而系数矩阵在右,即X*DB X=B*inv(D)=B/D把D的逆阵右

13、乘以B,记作/D,称之为右除。 2.5.3 基本数组运算1、数组转置数组转置的操作符是在矩阵转置操作符前加符号“.”。(实数情 况下等价)例:数组转置操作2、数组幂数组幂运算符 (单个符号自身运算)就是在矩阵运算符前加上符 号“.”。3.数组乘法2.5.4 基本数学函数在MATLAB中部分函数可以用来进行基本 的数学运算,有三角函数,指数运算函数、复 数运算函数等。注意:这些函数的参数可以是矩阵、向量或者 多维数组,函数在处理参数时,都是按照数组 运算运算的规则来进行的。函数数目较多,不一一列出,后面用到时再 作说明。2.5.5 矩阵(数组)操作函数函数说明 size获取矩阵的行、列数,对多维

14、数组,获取各个维的尺寸。 length获取向量长度,若输入参数为矩阵或多维数组,则返回各个维尺 寸的最大值 ndims获取矩阵或多维数组的维数 numel获取矩阵或数组的元素个数 disp显示矩阵或者字符串的内容 cat合并不同的矩阵或者数组 reshape保持矩阵元素的个数不变,修改矩阵的行数和列数 repmat复制矩阵元素并扩展矩阵 fliplr交换矩阵左右对称位置上的元素 flipud交换矩阵上下对称位置上的元素 flipdim按照指定的方向翻转交换矩阵元素find获取矩阵或数组中非零元素的索引例:对称交换函数的使用示例。函数flipdim的第二个参数必须是大于0的整数。为1时效果 同f

15、lipud。参数为2时,效果和fliplr函数一致。例 创建复杂矩阵2.7多维数组所谓多维数组,就是全下标表示元素时,下 标超过两个的数组。如三维数组,第一维称为行,第二维称为列 ,第三维称为页(见前面的全下表转换的例 子)。每一页上的数组必须具有同样的行、 列数。图像处理中出现的彩色图像即为此种 情况。2.7.1创建多维数组例:使用直接赋值的方法创建多维数组通过直接赋值的方法创建了三维数组,创建时直接对三 维数组第三页上的第三行第三列元素进行赋值, MATLAB将自动扩充数组,并将没有指定数值的数组元 素赋初值为0。例 使用函数创建多维数组像ones 、zeros等函数都可以使用这种方式创建多维数组 。

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

最新文档


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

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