第一章---Matlab中的数组操作

上传人:新** 文档编号:584756118 上传时间:2024-08-31 格式:PPT 页数:33 大小:671.50KB
返回 下载 相关 举报
第一章---Matlab中的数组操作_第1页
第1页 / 共33页
第一章---Matlab中的数组操作_第2页
第2页 / 共33页
第一章---Matlab中的数组操作_第3页
第3页 / 共33页
第一章---Matlab中的数组操作_第4页
第4页 / 共33页
第一章---Matlab中的数组操作_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《第一章---Matlab中的数组操作》由会员分享,可在线阅读,更多相关《第一章---Matlab中的数组操作(33页珍藏版)》请在金锄头文库上搜索。

1、1 MATLAB基础应用基础应用2第一章第一章 Matlab中的数组操作中的数组操作matlab中的运算和操作是以中的运算和操作是以数组数组为对象的,为对象的,数组又包括:数值数组、字符数组、元胞数组等。数组又包括:数值数组、字符数组、元胞数组等。数值数组:(数值数组:(1)n元数值向量(行向量与列向量)元数值向量(行向量与列向量) (2)数值矩阵)数值矩阵 (3)由数值矩阵构成的元胞数组)由数值矩阵构成的元胞数组几个标点符号的作用:几个标点符号的作用:逗号:用来分开数组中的行元素。(可用空格代替)逗号:用来分开数组中的行元素。(可用空格代替)分号:用来将矩阵中的行分开。分号:用来将矩阵中的行

2、分开。 (可用回车键代替)(可用回车键代替)冒号:相当于文字中的省略号。冒号:相当于文字中的省略号。中括号:界定数组的首与尾。中括号:界定数组的首与尾。3一、数组的建立一、数组的建立1.直接直接输入法输入法 matlab在创立数组时以逗号或空格表示分列,分号在创立数组时以逗号或空格表示分列,分号或回车表示分行。数组开头或回车表示分行。数组开头“”、结尾、结尾“” 行数组:如行数组:如a=1,2,3,8,-1 列数组:列数组: b=1;2;3;8;-1 或或a 矩阵:矩阵:A= 2,4,1;8:-2:4;2,4,64 2.通过数组编辑器生成矩阵通过数组编辑器生成矩阵 步骤:先建立空矩阵步骤:先建

3、立空矩阵a=, 然后在工作空间然后在工作空间(workspace)中点开中点开a进入数进入数 组编辑器,输入元素。组编辑器,输入元素。 3.用函数创建数组用函数创建数组定步长生成法:定步长生成法: x=a:t:b (t步长,省略是为步长,省略是为1);定数线性采样法:定数线性采样法: x=linspace(a,b,n), a与与b是数组的第一个和最后一个元素,是数组的第一个和最后一个元素, n是采样的总点数。是采样的总点数。x=linspace(2,5,6) x = 2.0000 2.6000 3.2000 3.8000 4.4000 5.00005 zeros(m): m阶全零方阵阶全零方阵

4、 zeros(m,n): mn阶全零方阵阶全零方阵 eye(m): m阶单位阵阶单位阵 ones(m): m阶全阶全1方阵方阵 ones(m,n): mn阶全阶全1方阵方阵 rand(m): m阶均匀分布随机方阵阶均匀分布随机方阵 randn(m): m阶标准正态分布随机方阵阶标准正态分布随机方阵 rand(m,n), randn(m,n) 6 4.元胞数组的创建元胞数组的创建 元胞数组是元胞数组是MATLAB的一种特殊数据类型,的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。或者叫做广义矩阵。 组成元胞数组的元素可以是

5、任何一种数据类型的组成元胞数组的元素可以是任何一种数据类型的量,每一个元素也可以具有不同的尺寸,每一个元素量,每一个元素也可以具有不同的尺寸,每一个元素的内容也可以完全不同,的内容也可以完全不同,元胞数组的元素叫做元胞元胞数组的元素叫做元胞。 建立元胞数组:建立元胞数组: a=matlab,20;ones(2,3),1:10a = matlab 20 2x3 double 1x10 double7二、数组的操作二、数组的操作 数组的编址:数组数组的编址:数组a建立后,建立后,a中各元素的编址方法中各元素的编址方法如下:如下: 单下标编址:单下标编址:a(1)表示表示a的第的第1个元素,个元素,

6、a(n)表示表示a的的第第n个元素,对于二元数组按个元素,对于二元数组按列优先原则列优先原则进行单下标编进行单下标编址。址。 双下标编址:双下标编址:a(2,3)表示矩阵表示矩阵a的第的第2行第行第3列元素。列元素。1. 数组数组元素与子数组的提取元素与子数组的提取 提取数组提取数组a的第的第3个元素:个元素:y=a(3) 提取提取a的第的第3到到7个元素:个元素:y=a(3:7), 8a=linspace(1,20,6)a = 1.00 4.80 8.60 12.40 16.20 20.00 提取提取a的第的第1,3,5个元素构成数组个元素构成数组b: b=a(1:2:5) 提取提取a的第的

7、第2到到5个元素,并反转次序构成数组个元素,并反转次序构成数组b1: b1=a(5:-1:2) 按条件提取子数组按条件提取子数组: 提取提取a的元素值大于的元素值大于10的元素构成数组的元素构成数组b2 b2=a(find(a10)b1 = 16.2000 12.4000 8.6000 4.8000 b2 = 12.40 16.20 20.009 1 2 3 4 5 0 1 2 3 4 -1 0 1 2 3 -2 -1 0 1 2 b1=2 b1=A(5) b2=A(2,3) b3=A(2,:) b4=A(2,3) b5=A(2,:);A(1,:) b6=A(2,4,3,5) 二维数组二维数组

8、A的元素的提取:的元素的提取: 由于数组由于数组A有两种编址方法,有两种编址方法,matlab会根据接受的指会根据接受的指令,先判断是哪一种编址方法,然后再进行元素的提取。令,先判断是哪一种编址方法,然后再进行元素的提取。如:如: A=1,2,3,4,5;0,1,2,3,4;-1,0,1,2,3;-2,-1,0,1,2 b6= 2 4 0 2b7=A(2,4,3,5,1) b7= 2 4 0 0 2 -2 b2=2 b5=0 1 2 3 4 1 2 3 4 5b3=0 1 2 3 4 b4=0,-1 10元胞数组元素的提取:元胞数组元素的提取: ()和()和 有着本质的区别,有着本质的区别,

9、表示元胞的内容,表示元胞的内容, ()表示指定的元胞。()表示指定的元胞。a=matlab,20;ones(2,3),1:10;ones(4,5),eye(4)a = matlab 20 2x3 double 1x10 double 4x5 double 4x4 double11 a = matlab 20 2x3 double 1x10 double 4x5 double 4x4 doubleb = 4x4 double b=a(3,2) b=a3,2b = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 a2,3=cell(2)改变元胞数组元素的元胞:赋值改变元胞数组元素的

10、元胞:赋值 a = matlab 20 2x3 double 1x10 double 2x2 cell 4x5 double 4x4 double 122.改变数组中的元素值数组的拼接改变数组中的元素值数组的拼接a=1:2:11 a= 1 3 5 7 9 11a(1)=0 a= 0 3 5 7 9 11 a(1:4)=2,-1,-2,-3a= 2 -1 -2 -3 9 11 a(2,5)=1.5,0.5a= 2 1.5 -2 -3 0.5 11 x=0:2:10, y=-2,-5,-8, x = 0 2 4 6 8 10y = -2 -5 -8 xx=x,y xx = 0 2 4 6 8 10

11、 -2 -5 -8yy = 2 8 -5 -8yy=xx(2,5);y(2:3) 13空数组的使用:空数组的使用:建立空数组建立空数组A: A= ,空数组大小任意。,空数组大小任意。可用空数组删除已有数组中的元素可用空数组删除已有数组中的元素B=1:8B(1:2:5)=B = 2 4 6 7 8A=2,3,4,5,6;1,2,3,4,5;0,1,2,3,4;-1,0,1,2,3删除矩阵删除矩阵A第第3行:行: A(3,:)=删除矩阵删除矩阵A第第2列:列: A(:,2)=143.常用的数组操作命令常用的数组操作命令(1)确定数组大小命令确定数组大小命令A=2,5,1,-2,7;0,3,-1,-

12、2,4;0,0,5,8,8求数组求数组A行数与列数的最大值:行数与列数的最大值:n=length(A)提取数组提取数组A的行数与列数:的行数与列数:m,n=size(A)(2)排序命令排序命令将一维数组将一维数组x的元素排序:的元素排序:x=3,-1,2,5,7,4,6,11,13,9,2,0,7,8b=sort(x), b,k=sort(x)b = -1 0 2 2 3 4 5 6 7 7 8 9 11 13k = 2 12 3 11 1 6 4 7 5 13 14 10 8 9将二维数组将二维数组x的元素排序?的元素排序?15(3)改变数组形状的命令改变数组形状的命令 x=3,-1,2,5

13、,7,4,6,11,13,9,2,8 将一维数组将一维数组x按条件转化为矩阵:按条件转化为矩阵: B=reshape(x,3,4)(4)数组的复制:数组的复制: c=1,2,5 c1=repmat(c,4,1) c2=repmat(c,1,4) c3=repmat(c,3,2) c4=repmat(c,3)B = 3 5 6 9 -1 7 11 2 2 4 13 8c3 = 1 2 5 1 2 5 1 2 5 1 2 5 1 2 5 1 2 516(5)稀疏矩阵与满矩阵的转化:稀疏矩阵与满矩阵的转化: 稀疏矩阵生成命令:稀疏矩阵生成命令:sparse(a,b,c) 数组数组a,b,c的大小必须

14、相同的大小必须相同 数组数组a与与b分别指定元素的行标与列标,分别指定元素的行标与列标, 数组数组c指定元素的值指定元素的值 A=sparse(2,4,18,3,12,20,-5,-3,-8) 创建稀疏矩阵创建稀疏矩阵A,A的的(2,3),(4,12),(18,20)元素分别元素分别为为-5,-3,-8,其余元素为零,其余元素为零,A为为1820阶矩阵。阶矩阵。 将稀疏矩阵将稀疏矩阵x变回满矩阵变回满矩阵: A=full(A)A = (2,3) -5 (4,12) -3 (18,20) -817(6) sum(A):矩阵矩阵A按列求和,返回一个行向量;按列求和,返回一个行向量; sum(A,2

15、):矩阵矩阵A按行求和,返回一个列向量。按行求和,返回一个列向量。 max(A):返回由矩阵各列的最大值构成的向量。返回由矩阵各列的最大值构成的向量。 max(A,B):返回返回A与与B对应元素最大值构成的矩阵对应元素最大值构成的矩阵 min(A),min(A,B)类似类似创建创建1820稀疏矩阵稀疏矩阵A,使,使A的的(2,3),(4,12),(15,16)元元素分别为素分别为-5,-3,-8,其余元素为零?,其余元素为零?A=sparse(2,4,15,18,3,12,16,20,-5,-3,-8,0)18A=1,2,3,4,5;0,6,2,3,4;-1,0,7,2,3;2,-1,0,1,

16、2 1 2 3 4 5 0 6 2 3 4 -1 0 7 2 3 2 -1 0 1 2 B=sum(A,2)B = 15 15 11 4 b1=max(A)b1 = 2 6 7 4 5返回由矩阵返回由矩阵A各行的最大值构成的列向量?各行的最大值构成的列向量?b2=max(A)b3=max(A,2) ?b3 = 2 2 3 4 5 2 6 2 3 4 2 2 7 2 3 2 2 2 2 2b2 = 5 6 7 219 b=diag(A): 提取方阵提取方阵A的对角线元素构成列向量的对角线元素构成列向量b A=diag(b): 用一维数组用一维数组b的元素生成对角方阵的元素生成对角方阵A (7)d

17、iag命令:命令: A=diag(b,k): b为一维数组,为一维数组,k为整数为整数 将将b元素作为偏离主对角线的第元素作为偏离主对角线的第k条对角生成方阵条对角生成方阵A b=2,3,-1,5,6, A=diag(b,1) B=diag(b,-2)A = 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 -1 0 0 0 0 0 0 5 0 0 0 0 0 0 6 0 0 0 0 0 0B = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 6

18、 0 020例例1.1 输入输入n阶矩阵阶矩阵 n=input(输入方阵阶数输入方阵阶数n=) a1=4*ones(n,1); a2=2*ones(n-1,1); a3=ones(n-2,1); A1=diag(a1)+diag(a2,1)+diag(a3,2);A2=diag(a2,-1)+diag(a3,-2);A=A1+A221 (8) find命令:命令: find(A) 找出找出A的不为的不为0的元素的下标的元素的下标 find(A,k) 找出找出A的前的前k个不为个不为0的元素的下标的元素的下标 find(A,k,last)找出找出A的后的后k个不为个不为0的元素的下标的元素的下标

19、 find(g(A),其中,其中g(A)是数组是数组A的逻辑表达式,的逻辑表达式, 返回数组返回数组A中满足条件中满足条件g(A)的元素下标。的元素下标。 22 A=0,0,2,-1,3,0,0,5,0,6,-7,0,0,9; b1=find(A,3) b2=find(A,2, last) b1=3 4 5b2=11 14B=0,1,0;2,3,0;4,0,0 c1=find(B) m,n=find(B)B = 0 1 0 2 3 0 4 0 0c1 = 2 3 4 5m = 2 3 1 2n = 1 1 2 223 B=0,1,0;2,3,0;4,0,0 t=find(B2) B = 0 1

20、 0 2 3 0 4 0 0t = 3 5 x = 3 2 y = 1 2 m = 2 1 2 n = 1 2 2 x,y=find(B2) m,n=find(B=1&B=3)24求连乘积求连乘积 c1=prod(4:6) c2=cumprod(4:6) 求组合求组合nchoosek(a,k) D=nchoosek(5,2) D=10 M = 3 2 3 1 3 7 2 1 2 7 1 7N = wxy wxz wyz xyz b=wxyz N=nchoosek(b,3)(9) 排列组合排列组合 c1=120 c2=4 20 120 a=3,2,1,7; M=nchoosek(a,2) 求向量

21、的全排列求向量的全排列 perms(2,1,8)25三、数组的运算三、数组的运算1.数值运算数值运算 数组的运算,也称点运算,是同阶数组对应分数组的运算,也称点运算,是同阶数组对应分量的运算。包括点乘、点除和点乘方,对应的运量的运算。包括点乘、点除和点乘方,对应的运算符号为算符号为 .* , ./ .这些运算符的公共特点是在算符前加上一个英文这些运算符的公共特点是在算符前加上一个英文句号,以便与对应的矩阵运算相区别。句号,以便与对应的矩阵运算相区别。 设设A与与B为同阶数的数组,为同阶数的数组,k为常数,为常数, A+B,A-B,k*A A.*B, A./B, A.n 262.关系运算与逻辑运

22、算关系运算与逻辑运算关系运算:关系运算:等于:等于:= = ,不等于:,不等于:= , 小于:小于:,小于等于:,小于等于:=。逻辑运算:逻辑运算:与:与:& ; 或:或:| ; 非:非: 。关系运算返回值为关系运算返回值为0或或1 如如a=35, 得得a=027例例1.2 已知数组已知数组A=2,5,1,-2,7;0,3,-1,-2,4;0,0,5,8,8,要求将要求将A中大于中大于4的元素减去的元素减去2,小于,小于0的元素加上的元素加上1,其余元素不变构成矩阵其余元素不变构成矩阵B。A=2,5,1,-2,7;0,3,-1,-2,4;0,0,5,8,8A = 2 5 1 -2 7 0 3

23、-1 -2 4 0 0 5 8 8B = 2 3 1 -1 5 0 3 0 -1 4 0 0 3 6 6B=A+(-2)*(A4)+(A0)28例例1.3 矩阵矩阵A=2,6,1,-12,7;0,3,4,-5,4;1,0,5,8,9,要求将要求将A中能被中能被3整除的元素保留其余元素变为零构成整除的元素保留其余元素变为零构成矩阵矩阵B。A=2,6,1,-12,7;0,3,4,-5,4;1,0,5,8,9A = 2 6 1 -12 7 0 3 4 -5 4 1 0 5 8 9B = 0 6 0 -12 0 0 3 0 0 0 0 0 0 0 9B=A.*(mod(A,3)=0)293. 数组的集

24、合运算数组的集合运算 a=1:12; b=2:10; setdiff(a,b) (a与与b的差集)的差集)得:得:1,11,12intersect(a,b) (a与与b的交集)的交集)得:得:2,3,4,5,6,7,8,9,10union(a,b)(a与与b的并集)的并集)30四、矩阵的运算四、矩阵的运算1.矩阵的基本运算矩阵的基本运算 数数k与矩阵与矩阵A的运算:的运算:k+A k*A 加法运算:加法运算:A+B, A-B ,(,(A与与B为同阶为同阶矩阵)矩阵) 乘法运算:乘法运算:A*B(A为为mk矩阵,矩阵,B为为kn矩阵)矩阵) 右除运算:右除运算:A/B (A乘乘B的逆,的逆,B为

25、可逆矩阵)为可逆矩阵) 左除运算:左除运算:AB ( A的逆乘的逆乘B ,A为可逆矩阵)为可逆矩阵) 幂运算:若幂运算:若A为方阵,为方阵, An为矩阵为矩阵A的的n次幂次幂312. 基本矩阵函数基本矩阵函数 转置转置A特征值特征值eig(A), 行列式行列式 det(A),秩秩rank(A), 逆逆inv(A), 迹迹trace(A),条件数条件数cond(A)32 练习题练习题1.输入一个矩阵输入一个矩阵A,提取,提取A的第的第2行第行第1列的元素;提取列的元素;提取A的第的第1,3,4列所有元素;让列所有元素;让A的第的第1列和第列和第3列互换;删除列互换;删除A的第的第1列。列。2.将

26、矩阵将矩阵A的第的第2行元素扩大行元素扩大2倍再增加倍再增加3后作为后作为A的第的第3行。行。3.求出数组求出数组x中所有奇数的和与所有的偶数和中所有奇数的和与所有的偶数和 x=8,3,5,-1,6,10,7,2,9,11,-4,-5,-1,12,11; 4.生成生成5阶随机数矩阵,其中的随机数服从均值为阶随机数矩阵,其中的随机数服从均值为20标准差为标准差为2的的正态分布正态分布 5. 生成一个生成一个1520阶的阶的均匀分布随机矩阵均匀分布随机矩阵A,并将,并将A中大于中大于0.5的的元素换成元素换成0.56.生成一个生成一个20阶的方阵阶的方阵A,A中中(2,3),(4,5),(8,6),(5,1),(12,2), (14,7), (15,12),(18,7)位置的均为位置的均为3,其余元素为零,其余元素为零.7.计算和式:计算和式: 338.查寻查寻fliplr命令的用法,并建立命令的用法,并建立20阶的方阵阶的方阵9. 已知矩阵已知矩阵 求(求(1)A的逆矩阵的逆矩阵 (2)解方程组)解方程组Ax=b (3)求)求A的特征值与特征向量的特征值与特征向量

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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