第二章 数值数组及其运算 - search readpudncom.doc

上传人:da****u 文档编号:1088934 上传时间:2018-12-03 格式:DOC 页数:21 大小:859KB
下载 相关 举报
第二章 数值数组及其运算 - search readpudncom.doc_第1页
第1页 / 共21页
第二章 数值数组及其运算 - search readpudncom.doc_第2页
第2页 / 共21页
第二章 数值数组及其运算 - search readpudncom.doc_第3页
第3页 / 共21页
第二章 数值数组及其运算 - search readpudncom.doc_第4页
第4页 / 共21页
第二章 数值数组及其运算 - search readpudncom.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、1第二章 数值数组及其运算数值数组(Numeric Array)和数组运算(Array Operations)始终是 MATLAB 的核心内容。自 MATLAB5.x 版起,由于其 “面向对象”的特征,这种数值数组(以下简称为数组)成为了 MATALB 最重要的一种内建数据类型( Built-in Data Type),而数组运算就是定义在这种数据结构上的方法(Method)。本章系统阐述:一、二维数值数组的创建、寻访;数组运算和矩阵运算的区别;实现数组运算的基本函数;多项式的表达、创建和操作;常用标准数组生成函数和数组构作技法;高维数组的创建、寻访和操作;非数 NaN、“空”数组概念和应用;

2、关系和逻辑操作。顺便指出:(1)本章所涉内容和方法,不仅使用于数值数组,而且也将部分地延伸使用于在其他数据结构中。(2)MATLAB5.x 和 6.x 版在本章内容上的差异极微。(3)MATLAB6.5 版新增的两种逻辑操作,在第 2.13.2 节给予介绍。2.1 引导【例 2.1-1】绘制函数 在 时的曲线。xey10x=0:0.1:1y=x.*exp(-x)plot(x,y),xlabel(x),ylabel(y),title(y=x*exp(-x) x =Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000Colu

3、mns 8 through 11 0.7000 0.8000 0.9000 1.0000y =Columns 1 through 7 0 0.0905 0.1637 0.2222 0.2681 0.3033 0.3293Columns 8 through 11 0.3476 0.3595 0.3659 0.3679 6 y 图 2.1-12.2 一维数组的创建和寻访22.2.1 一维数组的创建2.2.2 一维数组的子数组寻访和赋值【例 2.2.2-1】子数组的寻访( Address)。rand(state,0) x=rand(1,5) x =0.9501 0.2311 0.6068 0.486

4、0 0.8913 x(3) ans =0.6068 x(1 2 5) ans =0.9501 0.2311 0.8913 x(1:3) ans =0.9501 0.2311 0.6068 x(3:end) % ans =0.6068 0.4860 0.8913 x(3:-1:1) % ans =0.6068 0.2311 0.9501 x(find(x0.5) ans =0.9501 0.6068 0.8913 x(1 2 3 4 4 3 2 1) ans =Columns 1 through 7 0.9501 0.2311 0.6068 0.4860 0.4860 0.6068 0.2311

5、Column 8 0.9501 【例 2.2.2-2】子数组的赋值( Assign)。x(3) = 0 x =0.9501 0.2311 0 0.4860 0.8913 x(1 4)=1 1 x =1.0000 0.2311 0 1.0000 0.8913 2.3 二维数组的创建2.3.1 直接输入法3【例 2.3.1-1】在 MATLAB 环境下,用下面三条指令创建二维数组 C。a=2.7358; b=33/79;C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i C =1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.824

6、4 3.5000 + 1.0000i 【例 2.3.1-2】复数数组的另一种输入方式。M_r=1,2,3;4,5,6,M_i=11,12,13;14,15,16CN=M_r+i*M_i M_r =1 2 34 5 6M_i =11 12 1314 15 16CN =1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i 2.3.2 利用 M 文件创建和保存数组【例 2.3.2-1】创建和保存数组 AM 的 MyMatrix.m 文件。(1)% MyM

7、atrix.m Creation and preservation of matrix AMAM=101,102,103,104,105,106,107,108,109;.201,202,203,204,205,206,207,208,209;.301,302,303,304,305,306,307,308,309;(2)(3)2.4 二维数组元素的标识2.4.1 “全下标”标识2.4.2 “单下标”标识2.4.3 “逻辑 1”标识【例 2.4.3-1】找出数组 中所有绝对值大于 3 的元素。5314204AA=zeros(2,5);A(:)=-4:5L=abs(A)3islogical(L)

8、X=A(L) A =-4 -2 0 2 4-3 -1 1 3 5L =1 0 0 0 10 0 0 0 14ans =1X =-445 【例 2.4.3-2】演示逻辑数组与一般双精度数值数组的关系和区别。(本例在例 2.4.3-1 基础上进行)。(1)Num=1,0,0,0,1;0,0,0,0,1;N_L=Num=Lc_N=class(Num)c_L=class(L) N_L =1 1 1 1 11 1 1 1 1c_N =doublec_L =double (2)islogical(Num)Y=A(Num) ans =0? Index into matrix is negative or z

9、ero. See release notes on changes to logical indices. 2.5 二维数组的子数组寻访和赋值【例 2.5-1】不同赋值方式示例。A=zeros(2,4) A =0 0 0 00 0 0 0 A(:)=1:8 A =1 3 5 72 4 6 8 s=2 3 5;A(s)Sa=10 20 30A(s)=Sa ans =2 3 5Sa =102030A =51 20 30 710 4 6 8 A(:,2 3)=ones(2) A =1 1 1 710 1 1 8 2.6 执行数组运算的常用函数2.6.1 函数数组运算规则的定义:2.6.2 执行数组运

10、算的常用函数【例 2.6.2-1】演示 pow2 的数组运算性质。A=1:4;5:8 A =1 2 3 45 6 7 8 pow2(A) ans =2 4 8 1632 64 128 256 2.7 数组运算和矩阵运算2.7.1 数组运算和矩阵运算指令对照汇总【例 2.7.1-1】两种不同转置的比较clear;A=zeros(2,3);A(:)=1:6;A=A*(1+i)A_A=A.A_M=A A =1.0000 + 1.0000i 3.0000 + 3.0000i 5.0000 + 5.0000i2.0000 + 2.0000i 4.0000 + 4.0000i 6.0000 + 6.000

11、0iA_A =1.0000 + 1.0000i 2.0000 + 2.0000i3.0000 + 3.0000i 4.0000 + 4.0000i5.0000 + 5.0000i 6.0000 + 6.0000iA_M =1.0000 - 1.0000i 2.0000 - 2.0000i3.0000 - 3.0000i 4.0000 - 4.0000i5.0000 - 5.0000i 6.0000 - 6.0000i 2.8 多项式的表达方式及其操作2.8.1 多项式的表达和创建一 多项式表达方式的约定二 多项式行向量的创建方法【例 2.8.1.2-1】求 3 阶方阵 A 的特征多项式。6A=

12、11 12 13;14 15 16;17 18 19;PA=poly(A) PPA=poly2str(PA,s) PA =1.0000 -45.0000 -18.0000 0.0000PPA =s3 - 45 s2 - 18 s + 1.8303e-014 【例 2.8.1.2-2】由给定根向量求多项式系数向量。R=-0.5,-0.3+0.4*i,-0.3-0.4*i;P=poly(R)PR=real(P) PPR=poly2str(PR,x) P =1.0000 1.1000 0.5500 0.1250PR =1.0000 1.1000 0.5500 0.1250PPR =x3 + 1.1

13、x2 + 0.55 x + 0.125 2.8.2 多项式运算函数【例 2.8.2-1】求 的“商”及“余”多项式。1)(4)2(3sp1=conv(1,0,2,conv(1,4,1,1);p2=1 0 1 1;q,r=deconv(p1,p2);cq=商多项式为 ; cr=余多项式为 ;disp(cq,poly2str(q,s),disp(cr,poly2str(r,s) 商多项式为 s + 5余多项式为 5 s2 + 4 s + 3 【例 2.8.2-2】两种多项式求值指令的差别。S=pascal(4)P=poly(S);PP=poly2str(P,s)PA=polyval(P,S)PM=

14、polyvalm(P,S) S =1 1 1 11 2 3 41 3 6 101 4 10 20PP =s4 - 29 s3 + 72 s2 - 29 s + 1PA =1.0e+004 *0.0016 0.0016 0.0016 0.00160.0016 0.0015 -0.0140 -0.05630.0016 -0.0140 -0.2549 -1.20890.0016 -0.0563 -1.2089 -4.3779PM =1.0e-010 *0.0016 0.0033 0.0090 0.02050.0045 0.0101 0.0286 0.06970.0095 0.0210 0.0653

15、0.15960.0163 0.0387 0.1226 0.3019 7【例 2.8.2-3】部分分式展开。a=1,3,4,2,7,2;b=3,2,5,4,6;r,s,k=residue(b,a) r =1.1274 + 1.1513i1.1274 - 1.1513i-0.0232 - 0.0722i-0.0232 + 0.0722i0.7916 s =-1.7680 + 1.2673i-1.7680 - 1.2673i0.4176 + 1.1130i0.4176 - 1.1130i-0.2991 k = 2.9 标准数组生成函数和数组操作函数2.9.1 标准数组生成函数【例 2.9.1-1】标

16、准数组产生的演示。ones(1,2) ans =1 1 ones(2) ans =1 11 1 randn(state,0)randn(2,3) ans =-0.4326 0.1253 -1.1465-1.6656 0.2877 1.1909 D=eye(3) D =1 0 00 1 00 0 1 diag(D) ans =111 diag(diag(D) ans =1 0 00 1 00 0 1 8repmat(D,1,3) ans =Columns 1 through 8 1 0 0 1 0 0 1 00 1 0 0 1 0 0 10 0 1 0 0 1 0 0Column 9 001 2

17、.9.2 数组操作函数【例 2.9.2-1】diag 与 reshape 的使用演示。a=-4:4A=reshape(a,3,3) a =Columns 1 through 8 -4 -3 -2 -1 0 1 2 3Column 9 4A =-4 -1 2-3 0 3-2 1 4 a1=diag(A,1) a1 =-13 A1=diag(a1,-1) A1 =0 0 0-1 0 00 3 0 【例 2.9.2-2】数组转置、对称交换和旋转操作后果的对照比较。A A =-4 -1 2-3 0 3-2 1 4 A. ans =-4 -3 -2-1 0 12 3 4 flipud(A) ans =-

18、2 1 4-3 0 3-4 -1 2 fliplr(A) ans =2 -1 -493 0 -34 1 -2 rot90(A) ans =2 3 4-1 0 1-4 -3 -2 【例 2.9.2-3】演示 Kronecker 乘法不具备“可交换规律” 。B=eye(2)C=reshape(1:4,2,2) B =1 00 1C =1 32 4 kron(B,C) ans =1 3 0 02 4 0 00 0 1 30 0 2 4 kron(C,B) ans =1 0 3 00 1 0 32 0 4 00 2 0 4 2.10 数组构作技法综合【例 2.10-1】数组的扩展。(1)数组的赋值扩展

19、法A=reshape(1:9,3,3) A =1 4 72 5 83 6 9 A(5,5)=111 A =1 4 7 0 02 5 8 0 03 6 9 0 00 0 0 0 00 0 0 0 111 A(:,6)=222 A =1 4 7 0 0 2222 5 8 0 0 2223 6 9 0 0 2220 0 0 0 0 2220 0 0 0 111 222 10(2)多次寻访扩展法AA=A(:,1:6,1:6) AA =1 4 7 0 0 222 1 4 7 0 0 2222 5 8 0 0 222 2 5 8 0 0 2223 6 9 0 0 222 3 6 9 0 0 2220 0

20、0 0 0 222 0 0 0 0 0 2220 0 0 0 111 222 0 0 0 0 111 222 (3)合成扩展法B=ones(2,6) B =1 1 1 1 1 11 1 1 1 1 1 AB_r=A;B AB_r =1 4 7 0 0 2222 5 8 0 0 2223 6 9 0 0 2220 0 0 0 0 2220 0 0 0 111 2221 1 1 1 1 11 1 1 1 1 1 AB_c=A,B(:,1:5) AB_c =1 4 7 0 0 222 1 12 5 8 0 0 222 1 13 6 9 0 0 222 1 10 0 0 0 0 222 1 10 0 0 0 111 222 1 1 【例 2.10-2】提取子数组,合成新数组。A A =1 4 7 0 0 2222 5 8 0 0 2223 6 9 0 0 2220 0 0 0 0 2220 0 0 0 111 222 AB_BA=triu(A,1)+tril(A,-1) AB_BA =0 4 7 0 0 2222 0 8 0 0 2223 6 0 0 0 2220 0 0 0 0 2220 0 0 0 0 222 AB1=A(1:2,end:-1:1);B(1,:) AB1 =222 0 0 7 4 1222 0 0 8 5 21 1 1 1 1 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。