matlab 矩阵 mn行改成jk,matlab矩阵数组.ppt

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

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

2、预定义变量ans。 如: 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.矩阵。

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

4、则要求JK 如: x=1:0.01:1.1,3.使用函数linspace或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比较 以上创建的都是行向量,如果要创建列向量,在各个元素之间用分号。

5、;隔开,或对行向量进行转置运算。转置运算符为单引号。 如: x=1;2;3;4 4个元素的列向量 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)中,双击该变量。

6、,会打开一个数组编辑器,在该编辑器中可随意修改该变量。,3.利用特殊矩阵生成函数创建 对于某些特殊矩阵,Matlab提供了专用命令,如:,例子: 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向量元素的访问 访问向量的元素只要使用相应元素的索引即可。例:。

7、 A=1 2 3 4 5 6 7 8 9 %创建一个行向量 A(3) A(1 3 7) %访问向量的第1 3 7个元素 A(end-3:end) %访问最后四个元素 A(1:5,5:-1:1) %重复访问向量的元素,说明: 访问向量元素的结果是创建新的向量。 访问向量的元素可以直接用元素在向量中的序号,元素的序号不仅可以是单一的整数,还可以是元素序列号组成的向量。 关键字end在访问向量元素时,表示最后一个元素的序号。,对向量元素的赋值: A(3)=-3 A(15)=-15 原先1115号元素不存在,所以在赋值后,会自动创建这些元素,对于没有明确赋值的元素,则默认为0。,2矩阵元素的访问 对于。

8、矩阵元素的访问也需要使用矩阵元素的索引,不过它是有两种方式: (1) 使用矩阵元素的行列全下标的形式; (2)使用单下标的形式。,例:先创建一个魔方矩阵A A=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。

9、 全下标 ind2sub 由单下标全下标 i,j=ind2sub(size(A),IND) IND单下标,其他引用矩阵元素的方法:,五、矩阵的运算,1.前面已经介绍了很多矩阵的生成函数,不再重复。 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*。

10、A=B的解。对于矩阵运算,一般AB不等于B/A。 线性方程组求解,3.点运算 点运算是大小相等的矩阵或向量之间各元素一一对应的运算,是它们对应元素的直接运算,如C=A.*B表示A矩阵和B矩阵的相应元素之间直接进行乘法运算(点乘.*),然后将结果赋值给C矩阵,这和矩阵的乘积是不同的。,例: x=1:5; 创建一个向量 x*x 结果是? 出错 x.*x ans = 1 4 9 16 25 x*x 结果是? 55 x*x,1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25,例: A=1 2; 3 4 B=5 6; 7 8 A*B a。

11、ns = 19 22 43 50 A.*B ans = 5 12 21 32,点运算还包括点左除(.),点右除(./),点乘方(.)。该运算在Matlab中起着很重要的作用。 如:当x是一个向量时,求其各元素的5次方,不能直接写成x5,而必须写成x.5。 特别注意:点运算要求两个矩阵或向量的维数相同。(是对应元素之间的操作),稀疏矩阵,在实际工作中经常会遇到这样一类矩阵,这类矩阵中数值为0的元素比较多(如单位矩阵),这类矩阵一般被称为稀疏矩阵。如果使用满阵的方式来表示稀疏矩阵,则0元素将占用相当多的内存空间,尤其是在matlab中,由于matlab默认数据类型为双精度,每个双精度的数据元素要占。

12、用8个字节空间,当0元素很多时,将占用很多的内存空间。因此,在matlab中专门提供了稀疏矩阵的表示方法。,创建稀疏矩阵,A=eye(5) %五阶的单位矩阵 B=sparse(A) %用sparse构造为稀疏矩阵 whos %可以比较A,B占用内存空间 full(B) %用full函数将稀疏矩阵还原成满阵,多维矩阵,多维矩阵(数组),就是下标数超过了两个的数组。常用的为三维矩阵,更高维的用到的机会较少。 习惯上将第一维称为行,第二维称为列,第三维称为页。要注意的是,第三维数的页上,每一页的数组必须具有相同的行,列。,创建多维数组也有两种方法: 1.直接赋值的方法 2.使用Matlab提供的函数。

13、创建,1.直接赋值的方法,A=pascal(4); A(:,:,2)=eye(4); A(:,:,3)=magic(4); 创建了一个三维矩阵,由三页构成。 如果A(:,:,3)=magic(5),由于维数不匹配系统将报错! 或者B(3,3,3)=1 也可以创建一个三维矩阵,前两页都为零,最后一页的最后一个元素为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。

14、,构造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= LYU Matlab将字符串当做一个行向量,每个元素对应一个字符,其引用方法和数值向量相同。 注意:字符串是以ASCII码形式存储的,可以用abs和double函数获取字符串矩阵所对应的ASCII码数值矩阵,也可用char函数把ASCII码矩阵转换成字符串矩阵。,xm=LYU abs(xm) ans = 76 89 85 xx=97:3:122 yy=char(xx) yy = adgjmpsvy,和字符串有关的另一个重要的函数为eval,格式: eval(t) 其中t为字符串 作用是将字符串的内容作为Matlab语句执行。 t=pi; m=t,sin(t),cos(t) eval(m),* 次数:1357533 已用完,请联系开发者。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值