资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第11周Matlab 一、二维数组 二、二维数组与绘图一、二维数组二维数组是由实数或复数排列成矩形而 构成的,从数据结构上看,二维数组和矩阵没有什么 区别。当二维数组带有线形变换含义时,该二维数组 就是矩阵(matrix)。1、二维数组的输入方法(1)在键盘上输入下列内容 A = 1,2,3; 4,5,6; 7,8,9 (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A =1 2 34 5 67 8 9 说明:直接输入矩阵时,每行元素用 空格或逗号分隔,矩阵行用分号分隔 ,整个矩阵放在方括号里,标点符号 一定要在英文状态下输入。2、由一维数组创建二维数组A = 1,3,5 B = 2,4,6 C = 3,5,7D = A;B E = A;B;C F = A,B G = A,B,C3、由函数创建二维数组zeros(m,n )生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n)ones(m,n)生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n)eye(m,n)生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单 位矩阵magic(n)生成魔方数组,各行、列之和 = (1+2+n2 )/ndiag(v,k)v是向量,diag(v) 产生以 v 为第k条对角线的矩阵, 默认k=0 rand(m,n)产生 01 间均匀分布的随机矩阵 m=n 时简 写为 rand(n) randn(m,n )产生均值为 0,方差为1的标准正态分布随机矩阵 m=n 时简 写为 randn(n)diag(v,k):在matlab中生成二维数组A =0 0 00 0 00 0 01 1 11 1 11 1 1B =1 0 0 00 2 0 00 0 3 00 0 0 4-4 0 0 00 -3 0 00 0 -2 00 0 0 -14、二维数组操作函数cat(dim, A, B)把“大小”相同的若干数组,沿“指定 维”方向,串接成高维数组 。行( dim=1) 列(dim=2)diag(A,k)A 是矩阵,则 diag(A,k) 返回A的第k 条对角线向量,默认k=0flipud(A)以数组“水平中线”为对称轴,交换 上下对称位置上的数组元素fliplr(A)以数组“垂直中线”为对称轴,交换 左右对称位置上的数组元素kron(A,B)按Kronecker乘法规则(直积)产生 “积”数组二维数组操作函数repmat(A,m,n)按指定的“行数、列数”铺放模块数 组,以形成更大的数组rot90(A,k)逆时针旋转 k90 度reshape(A,m,n)在总元素数不便的前提下,改变 数组的“行数、列数”tril(A)提取一个矩阵的下三角部分triu(A)提取一个矩阵的上三角部分5、二维数组的转置运算 A.:转置 A:共轭转置6、两个维数相同的 二维数组之间的数组运算 A + B:加,对应位置的数组元素相加 A - B:减,对应位置的数组元素相减 A.*B:点乘,对应位置的数组元素相乘 A./B:右点除,对应位置的数组元素相除 A.B:左点除 A.B:点幂,对应位置的数组元素做幂运算7、二维数组的与标量 的运算 A + c :A的每个元素加c A - c: A的每个元素减c A.*c:点乘, A的每个元素乘c A./c:右点除, A的每个元素除c A.c:左点除,c除A的每个元素 A.c:点幂, A的每个元素做幂运算 c.A:点幂,c做幂运算8、函数作用在二维数组上的 运算规则9、引用二维数组的元素1、 A(r,c):“全下标”标识: 即指出是“第几行,第几列”的元素2、A(ind):“单下标”标识: Linear Index 只用一个下标来指明元素在数组中的位置: 把二维数组的所有列,按先左后右的次序,首 尾相接排成“一维长列”,然后,自上往下对元素位置 进行标号。3、“单下标”与“全下标”的转化: 全下标单下标:ind = sub2ind(siz,r,c) 单下标全下标:r,c = ind2sub(siz,ind)二维数组的单个元素 的引用和赋值 Xmagic(6) 单个元素寻访 X(2,3) X(5,5) X(16) 单个元素的赋值 X (2,3) = 0 X (5,5) = 7 X (16) = 8二维数组的子数组 的引用和赋值A(r,:)由A的“r行”和“全部列”上的元素组成A(:,c)由A的“全部行”和“c列”上的元素组成A(r,c)由A的“r行”和“c列”上的元素组成A(r,c) = B对子数组A(r,c)进行赋值:B的“行、列” 必须与A(r,c)的“行、列”相同(1)使用“双下标”方式A(:)由A的各列按自左到右的次序,首尾相接而生成 的“一维长列”数组 A(s)引用A中由一维数组s指定的元素。s若是行(或 列),则A(s)就是长度相同的行(或列) A(:) = D(:)全元素赋值方式。结果:保持A的“行宽、列长” 不变。条件:A、D两个数组的总元素相等,但 “行宽、列长”不一定相同 A(s) = B对A的部分元素重新赋值。结果:保持A的“行 宽、列长”不变。条件:s单下标数组的长度必 须与“一维数组”B的长度相等,但是s、B不一 定同是“行数组”或“列数组”(2)使用“单下标”方式A(L)“逻辑数组”寻访,生成“一维”列数组:由与 A同样大小的“逻辑数组”L中的“1元素”选出A 的对应元素;按“单下标”次序排成长列组成(3)使用“逻辑数组”方式10、与二维数组相关的函数cmax = max(A)rmax = max(A,2)cmax,index = max(A)rmax,index = max(A,2)max(A,B) 返回一个二维数组,元素为A,B相同位置上的较大值min(A),min(A,2) c,d= min(A),c,d= min(A,2),min(A,B)返回cmax为一个行数组,元素为A中每个列的最大值返回rmax为一个列数组,元素为A中每个行的最大值返回A中每个列的最大值及其位置,cmax,index为行数组返回A中每个列的最大值及其位置,rmax,index为列数组mean(A) mean(A,2)返回A中每个列向量的平均值 返回A中每个行向量的平均值median(A) Median(A,2)返回A中每个列向量的中值 返回A中每个行向量的中值std(A) std(A,2)返回A中每个列向量的标准差 返回A中每个行向量的标准差sum(A) sum(A,2)计算A中每个列向量的元素的和 计算A中每个行向量的元素的和cumsum(A) cumsum(A,2)A中每个列向量的累加和,维数与A相同 A中每个行向量的累加和,维数与A相同prod(A) prod(A,2)计算A中每个列向量的元素的积 计算A中每个行向量的元素的积cumprod(A) cumprod(A,2)A中每个列向量的累乘积,维数与A相同 A中每个行向量的累乘积,维数与A相同sort(A)对A中列向量进行升序排序sort(A,descend)对A中列向量进行降序排序sort(A,2)对A中行向量进行升序排序sort(A,2,descend )对A中行向量进行降序排序sz=size(A)当只有一个输出参数时,size函数返 回的是一个行向量,该行向量的第一 个元素是数组的行数,第二个元素是 数组的列数。 r,c=size(A )当有两输出参数时,size函数将数组 的行数返回到第一个输出变量,将数 组的列数返回到第二个输出变量。r=size(A,1)返回数组 A 的行数c=size(A,2)返回数组 A 的列数length(A)返回数组的长度(行数或列数的较大 值) numel(A)返回数组元素的个数练习二、二维数组与绘图plot(x,y)(1)若x, y 都是二维数组, 将 x 的列和 y 中相应的列相组合,绘制多条平 面曲线。此时 x, y 必须具有相同的大小。例:利用二维数组在同一坐标轴中同时绘制下 列函数的图形:1、二维数组在2d绘图中的应用plot用二维数组绘图的细节你想要是下面的哪一种图形?怎样绘制出这两种图形?补充:plot绘图的细节例题:用plot函数动 态演示利萨如图形 的形成。t = plot(x(1,2),y(1,2)hold onaxis(-1.1,1.1,-1.1,1.1)for k = 2:length(t)-1plot(x(k,k+1),y(k,k+1)pause(0.1)endplot(x,y)(2)若x 是一维数组, y 是二维数组当 x 的长度与 y 的行数相等,则将 x 与 y 中的各列相对应,绘制多条平面曲线; 否则,若 x 的长度与 y 的列数相等,则将 x 与 y 中的各行相对应,绘制多条平面曲线。线性代数中:列 行 = 矩阵 x = linspace(0,2*pi,50) y = cos(x)*(1:9)plot(x,y)例:利用plot函数的上述功能在同一坐标轴中 同时绘制下列函数的图形:2、二维数组在3d绘图中的应用u 网格生成函数:meshgridx, y 为给定的向量 X, Y 是网格划分后得到的网格矩阵u 绘制由函数 z=z(x,y) 确定的曲面时,首先需产生一个网格矩阵,然后计算函数在各网格点上的值。若 x = y, 可简写为 X,Y= meshgrid(x)X,Y= meshgrid(x,y)例:“墨西哥帽子”(1)三维网格图: mesh, meshc, meshzmesh(X,Y,Z,C) 绘制由矩阵 X,Y,Z 所确定的曲面网格图,矩阵 C 用于 确定网格颜色,省略时 C=Zmeshc(X,Y,Z,C) 调用方式与 mesh 相同,在 mesh 基础上增加等高线meshz(X,Y,Z,C) 调用方式与 mesh 相同,在 mesh 基础上屏蔽边界面meshmeshcmeshz(2)三维表面图: surf, surfcsurf(X,Y,Z,C) 绘制由矩阵 X,Y,Z 所确定的曲面图,参数含义同 meshsurfc(X,Y,Z,C) 调用方式与 surf 相同,在 surf 基础上增加等高线surfsurfc若不想在三维表面图中显示网格线,可将属性 “edgecolor”设为“none”surf(X,Y,Z,edgecolor,none)surfsurfc(3)mesh和surf绘图的细节A、绘制四边形平面练习:绘制一个立方体表面(共六个面 )B、绘制三角形平面C、绘制五边形平面D、绘制圆形平面E、绘制圆(棱)柱、台、锥面F、绘制球面
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号