matlab矩阵数组.ppt

上传人:小飞机 文档编号:6512032 上传时间:2023-11-08 格式:PPT 页数:44 大小:236KB
返回 下载 相关 举报
matlab矩阵数组.ppt_第1页
第1页 / 共44页
matlab矩阵数组.ppt_第2页
第2页 / 共44页
matlab矩阵数组.ppt_第3页
第3页 / 共44页
matlab矩阵数组.ppt_第4页
第4页 / 共44页
matlab矩阵数组.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《matlab矩阵数组.ppt》由会员分享,可在线阅读,更多相关《matlab矩阵数组.ppt(44页珍藏版)》请在三一办公上搜索。

1、第二章 Matlab矩阵和数组,由于Matlab自身的特点,它是一种以科学计算为基础的软件,M语言的基本处理单位是数值矩阵或向量,在M语言中统一把矩阵、向量称为数组。首先了解一些相关的概念。,一、概述,1.变量和常量变量:指在程序运行过程中需要改变数值的量,每个变量都有一个名字(命名规则和C相似,字母开头,数字字母和下划线的组合。)每个变量在内存中占据一定的空间。注:在matlab中变量名区分大小写。常量:在程序运行过程中不需要改变数值的量。,赋值操作 matlab中赋值有两种格式:(1)变量=表达式(=赋值运算)(2)表达式 对第二种形式,会将表达式的值赋给Matlab的预定义变量ans。如

2、:x=4+cos(50)sin(50),经常使用的几个常量:pi 圆周率 inf 无穷大,负无穷大可以表示为-inf Nan 代表“非数值量”,如0/0或inf/inf的结果。eps 机器零阈值,若变量的绝对值小于eps,则可以认为这个量为零 i和j 如果i和j不被定义,则表示虚数单位。,2.数组 数组就是有序数列的集合。数组的每一个元素都属于同一种类型,它们使用同一个数组名和不同的下标来唯一确定数组中的成员。下标是指数组元素在数组中的序号。,3.向量 从编程语言的角度,向量就是一维数组,从数学的角度看,向量就是1N或N1的矩阵,即行向量或列向量。,4.矩阵 在Matlab中,矩阵的概念和线性

3、代数中定义的矩阵的概念是一样的。矩阵使用一对圆括号或方括号括起来,符合一定规则的数学对象。如:B=,二、创建向量,向量也就是一维数组,在Matlab中创建向量有以下几种方法:1.直接输入 将元素用方括号括起来,各元素之间用空格或逗号隔开。如:x=1 2 pi 3+4i或x=1,3,42.利用冒号运算符:创建向量如:x=1:10 创建一个有10个元素的向量x,冒号表达式的一般格式为:X=J:INC:KJ 表示第一个元素,K表示最后一个元素,INC表示元素递增的步长都用:隔开如果省略INC,则按默认步长为1INC为正,则要求KJ,INC为负,则要求JK如:x=1:0.01:1.1,3.使用函数li

4、nspace或logspace创建向量linspace是用来产生线性间隔向量的函数用法:x=linspace(x1,x2,n)x1 第一个元素,x2 最后一个元素,n为元素的个数。该函数将根据n的数值计算元素之间的间隔,(x2-x1)/(n-1)。如省略n,为100。如:linspace(1,2,5)linspace(1,2),logspace和linspace的用法一样,用来创建对数间隔的向量。如:logspace(1,2,5)与linspace比较 以上创建的都是行向量,如果要创建列向量,在各个元素之间用分号;隔开,或对行向量进行转置运算。转置运算符为单引号。如:x=1;2;3;4 4个元

5、素的列向量 A=linspace(1,2,5)先创建一个行向量 B=A 对A进行转置运算,结果赋给B,三、创建矩阵,一般的矩阵具有m行n列(mn),和二维数组是同一个概念。创建矩阵的方法:1.第一种直接输入法:适合创建矩阵的行、列比较少的矩阵。如:A=1 2 3;4 5 6;7 8 9;注:整个矩阵的元素必须在 之内。行与行之间要用分号;隔开,或者在需要分行的地方用回车键。元素之间可以用空格或逗号间隔。,2.利用数组编辑器创建一数值型的变量后,在工作空间(workspace)中,双击该变量,会打开一个数组编辑器,在该编辑器中可随意修改该变量。,3.利用特殊矩阵生成函数创建对于某些特殊矩阵,Ma

6、tlab提供了专用命令,如:,例子:ones(4)magic(4)rand(3,4)A=magic(4)tril(A),16 0 0 0 5 11 0 0 9 7 6 0 4 14 15 1,特殊矩阵的生成函数,介绍几个矩阵变换常用命令,四、索引,访问和操作向量或矩阵元素的方法:就是利用矩阵或向量元素的索引来完成相应的操作。(注意:在Matlab中,矩阵的索引起始数值为1,而在C语言中数组索引下标的起始值为0),1向量元素的访问访问向量的元素只要使用相应元素的索引即可。例:A=1 2 3 4 5 6 7 8 9%创建一个行向量A(3)A(1 3 7)%访问向量的第1 3 7个元素A(end-3

7、:end)%访问最后四个元素A(1:5,5:-1:1)%重复访问向量的元素,说明:访问向量元素的结果是创建新的向量。访问向量的元素可以直接用元素在向量中的序号,元素的序号不仅可以是单一的整数,还可以是元素序列号组成的向量。关键字end在访问向量元素时,表示最后一个元素的序号。,对向量元素的赋值:A(3)=-3A(15)=-15原先1115号元素不存在,所以在赋值后,会自动创建这些元素,对于没有明确赋值的元素,则默认为0。,2矩阵元素的访问对于矩阵元素的访问也需要使用矩阵元素的索引,不过它是有两种方式:(1)使用矩阵元素的行列全下标的形式;(2)使用单下标的形式。,例:先创建一个魔方矩阵A A=

8、magic(5)A(2,4)%全下标的形式 是哪个元素?A(9)%单下标的形式,是哪个?(1)全下标是矩阵元素的行号、列号(2)单下标是矩阵元素在内存中存储的序号,在Matlab中矩阵元素的排列是以列元素优先排列,和C语言不同。所以上个例子A(9)=A(4,2),(3)单下标和全下标之间的转换Matlab提供了两个函数可以完成它们之间的转换:sub2ind 由全下标单下标 sub2ind(size(A),i,j)i,j 全下标ind2sub 由单下标全下标 i,j=ind2sub(size(A),IND)IND单下标,其他引用矩阵元素的方法:,五、矩阵的运算,1.前面已经介绍了很多矩阵的生成函

9、数,不再重复。2.矩阵的基本运算对于矩阵的运算,Matlab提供了若干函数和基本的运算规则,这些规则和函数分别和线性代数中的概念和运算规则是对应的,如下表:,矩阵的除法有两种运算:左除()和右除(/)。如果A是非奇异的方阵,则AB和B/A都可以实现。AB等效于A的逆左乘B,即inv(A)*B,而B/A等效于A的逆右乘B,即B*inv(A)。一般来说:X=AB是方程A*X=B的解,而X=B/A是方程X*A=B的解。对于矩阵运算,一般AB不等于B/A。线性方程组求解,3.点运算点运算是大小相等的矩阵或向量之间各元素一一对应的运算,是它们对应元素的直接运算,如C=A.*B表示A矩阵和B矩阵的相应元素

10、之间直接进行乘法运算(点乘.*),然后将结果赋值给C矩阵,这和矩阵的乘积是不同的。,例:x=1:5;创建一个向量 x*x 结果是?出错 x.*x ans=1 4 9 16 25x*x 结果是?55x*x,1 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 205 10 15 20 25,例:A=1 2;3 4B=5 6;7 8A*Bans=19 22 43 50A.*Bans=5 12 21 32,点运算还包括点左除(.),点右除(./),点乘方(.)。该运算在Matlab中起着很重要的作用。如:当x是一个向量时,求其各元素的5次方,不能直接写成x5,而必须写成x.

11、5。特别注意:点运算要求两个矩阵或向量的维数相同。(是对应元素之间的操作),稀疏矩阵,在实际工作中经常会遇到这样一类矩阵,这类矩阵中数值为0的元素比较多(如单位矩阵),这类矩阵一般被称为稀疏矩阵。如果使用满阵的方式来表示稀疏矩阵,则0元素将占用相当多的内存空间,尤其是在matlab中,由于matlab默认数据类型为双精度,每个双精度的数据元素要占用8个字节空间,当0元素很多时,将占用很多的内存空间。因此,在matlab中专门提供了稀疏矩阵的表示方法。,创建稀疏矩阵,A=eye(5)%五阶的单位矩阵B=sparse(A)%用sparse构造为稀疏矩阵whos%可以比较A,B占用内存空间full(

12、B)%用full函数将稀疏矩阵还原成满阵,多维矩阵,多维矩阵(数组),就是下标数超过了两个的数组。常用的为三维矩阵,更高维的用到的机会较少。习惯上将第一维称为行,第二维称为列,第三维称为页。要注意的是,第三维数的页上,每一页的数组必须具有相同的行,列。,创建多维数组也有两种方法:1.直接赋值的方法2.使用Matlab提供的函数创建,1.直接赋值的方法,A=pascal(4);A(:,:,2)=eye(4);A(:,:,3)=magic(4);创建了一个三维矩阵,由三页构成。如果A(:,:,3)=magic(5),由于维数不匹配系统将报错!或者B(3,3,3)=1 也可以创建一个三维矩阵,前两页

13、都为零,最后一页的最后一个元素为1.,2.使用Matlab提供的函数创建,使用一些函数可以创建三维数组:如ones,zeros,rand等等。rand(3,3,3)%创建三维的数组,使用函数cat(),使用格式为:A=cat(n,A1,A2,)n=1时,按A1;A2;构造矩阵A;n=2时,按A1,A2,构造A;n=3时,构造三维矩阵A,A(:,:,1)=A1,A(:,:,2)=A2,。例:A=magic(3);B=eye(3);C=pascal(3);cat(3,A,B,C),字符串,在Matlab中,字符串是用单引号括起来的字符序列。如:xm=LYU输出结果是xm=LYUMatlab将字符串当做一个行向量,每个元素对应一个字符,其引用方法和数值向量相同。注意:字符串是以ASCII码形式存储的,可以用abs和double函数获取字符串矩阵所对应的ASCII码数值矩阵,也可用char函数把ASCII码矩阵转换成字符串矩阵。,xm=LYUabs(xm)ans=76 89 85xx=97:3:122yy=char(xx)yy=adgjmpsvy,和字符串有关的另一个重要的函数为eval,格式:eval(t)其中t为字符串作用是将字符串的内容作为Matlab语句执行。t=pi;m=t,sin(t),cos(t)eval(m),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号