首页 _335B_ch02

_335B_ch02

举报
开通vip

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

_335B_ch02
第二章 数值数组及其运算 第二章 数值数组及其运算 数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。自MATLAB5.x版起,由于其“面向对象”的特征,这种数值数组(以下简称为数组)成为了MATALB最重要的一种内建数据类型(Built-in Data Type),而数组运算就是定义在这种数据结构上的方法(Method)。 本章系统阐述:一、二维数值数组的创建、寻访;数组运算和矩阵运算的区别;实现数组运算的基本函数;多项式的表达、创建和操作;常用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 数组生成函数和数组构作技法;高维数组的创建、寻访和操作;非数NaN、“空”数组概念和应用;关系和逻辑操作。 顺便指出:(1)本章所涉内容和方法,不仅使用于数值数组,而且也将部分地延伸使用于在其他数据结构中。(2)MATLAB5.x和6.x 版在本章内容上的差异极微。(3)MATLAB6.5版新增的两种逻辑操作,在第2.13.2节给予介绍。 102.1​ 引导 【例2.1-1】绘制函数 在 时的曲线。 x=0:0.1:1 y=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.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000 y = Columns 1 through 7 0 0.0905 0.1637 0.2222 0.2681 0.3033 0.3293 Columns 8 through 11 0.3476 0.3595 0.3659 0.3679 图2.1-1 102.2​ 一维数组的创建和寻访 102.2.1​ 一维数组的创建 102.2.2​ 一维数组的子数组寻访和赋值 【例2.2.2-1】子数组的寻访(Address)。 rand('state',0) x=rand(1,5) x = 0.9501 0.2311 0.6068 0.4860 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(x>0.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 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 102.3​ 二维数组的创建 102.3.1​ 直接输入法 【例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.8244 3.5000 + 1.0000i 【例2.3.1-2】复数数组的另一种输入方式。 M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16] CN=M_r+i*M_i M_r = 1 2 3 4 5 6 M_i = 11 12 13 14 15 16 CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i 102.3.2​ 利用M文件创建和保存数组 【例2.3.2-1】创建和保存数组 AM的 MyMatrix.m 文件。 (1) % MyMatrix.m Creation and preservation of matrix AM AM=[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) 102.4​ 二维数组元素的标识 102.4.1​ “全下标”标识 102.4.2​ “单下标”标识 102.4.3​ “逻辑1”标识 【例2.4.3-1】找出数组 中所有绝对值大于3的元素。 A=zeros(2,5); A(:)=-4:5 L=abs(A)>3 islogical(L) X=A(L) A = -4 -2 0 2 4 -3 -1 1 3 5 L = 1 0 0 0 1 0 0 0 0 1 ans = 1 X = -4 4 5 【例2.4.3-2】演示逻辑数组与一般双精度数值数组的关系和区别。(本例在例2.4.3-1基础上进行)。 (1) Num=[1,0,0,0,1;0,0,0,0,1]; N_L=Num==L c_N=class(Num) c_L=class(L) N_L = 1 1 1 1 1 1 1 1 1 1 c_N = double c_L = double (2) islogical(Num) Y=A(Num) ans = 0 ??? Index into matrix is negative or zero. See release notes on changes to logical indices. 102.5​ 二维数组的子数组寻访和赋值 【例2.5-1】不同赋值方式示例。 A=zeros(2,4) A = 0 0 0 0 0 0 0 0 A(:)=1:8 A = 1 3 5 7 2 4 6 8 s=[2 3 5]; A(s) Sa=[10 20 30]' A(s)=Sa ans = 2 3 5 Sa = 10 20 30 A = 1 20 30 7 10 4 6 8 A(:,[2 3])=ones(2) A = 1 1 1 7 10 1 1 8 102.6​ 执行数组运算的常用函数 102.6.1​ 函数数组运算规则的定义: 102.6.2​ 执行数组运算的常用函数 【例2.6.2-1】演示pow2的数组运算性质。 A=[1:4;5:8] A = 1 2 3 4 5 6 7 8 pow2(A) ans = 2 4 8 16 32 64 128 256 102.7​ 数组运算和矩阵运算 102.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.0000i 2.0000 + 2.0000i 4.0000 + 4.0000i 6.0000 + 6.0000i A_A = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000i A_M = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i 6.0000 - 6.0000i 102.8​ 多项式的表达方式及其操作 102.8.1​ 多项式的表达和创建 10 1​ 多项式表达方式的约定 10 2​ 多项式行向量的创建方法 【例 2.8.1.2-1】求3阶方阵A的特征多项式。 A=[11 12 13;14 15 16;17 18 19]; PA=poly(A) PPA=poly2str(PA,'s') PA = 1.0000 -45.0000 -18.0000 0.0000 PPA = s^3 - 45 s^2 - 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.1250 PR = 1.0000 1.1000 0.5500 0.1250 PPR = x^3 + 1.1 x^2 + 0.55 x + 0.125 102.8.2​ 多项式运算函数 【例2.8.2-1】求 的“商”及“余”多项式。 p1=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 s^2 + 4 s + 3 【例 2.8.2-2】两种多项式求值指令的差别。 S=pascal(4) P=poly(S); PP=poly2str(P,'s') PA=polyval(P,S) PM=polyvalm(P,S) S = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 PP = s^4 - 29 s^3 + 72 s^2 - 29 s + 1 PA = 1.0e+004 * 0.0016 0.0016 0.0016 0.0016 0.0016 0.0015 -0.0140 -0.0563 0.0016 -0.0140 -0.2549 -1.2089 0.0016 -0.0563 -1.2089 -4.3779 PM = 1.0e-010 * 0.0016 0.0033 0.0090 0.0205 0.0045 0.0101 0.0286 0.0697 0.0095 0.0210 0.0653 0.1596 0.0163 0.0387 0.1226 0.3019 【例 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.1513i 1.1274 - 1.1513i -0.0232 - 0.0722i -0.0232 + 0.0722i 0.7916 s = -1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 k = [] 102.9​ 标准数组生成函数和数组操作函数 102.9.1​ 标准数组生成函数 【例2.9.1-1】标准数组产生的演示。 ones(1,2) ans = 1 1 ones(2) ans = 1 1 1 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 0 0 1 0 0 0 1 diag(D) ans = 1 1 1 diag(diag(D)) ans = 1 0 0 0 1 0 0 0 1 repmat(D,1,3) ans = Columns 1 through 8 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 Column 9 0 0 1 102.9.2​ 数组操作函数 【例 2.9.2-1】diag与reshape的使用演示。 a=-4:4 A=reshape(a,3,3) a = Columns 1 through 8 -4 -3 -2 -1 0 1 2 3 Column 9 4 A = -4 -1 2 -3 0 3 -2 1 4 a1=diag(A,1) a1 = -1 3 A1=diag(a1,-1) A1 = 0 0 0 -1 0 0 0 3 0 【例2.9.2-2】数组转置、对称交换和旋转操作后果的对照比较。 A A = -4 -1 2 -3 0 3 -2 1 4 A.' ans = -4 -3 -2 -1 0 1 2 3 4 flipud(A) ans = -2 1 4 -3 0 3 -4 -1 2 fliplr(A) ans = 2 -1 -4 3 0 -3 4 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 0 0 1 C = 1 3 2 4 kron(B,C) ans = 1 3 0 0 2 4 0 0 0 0 1 3 0 0 2 4 kron(C,B) ans = 1 0 3 0 0 1 0 3 2 0 4 0 0 2 0 4 102.10​ 数组构作技法综合 【例2.10-1】数组的扩展。 (1)数组的赋值扩展法 A=reshape(1:9,3,3) A = 1 4 7 2 5 8 3 6 9 A(5,5)=111 A = 1 4 7 0 0 2 5 8 0 0 3 6 9 0 0 0 0 0 0 0 0 0 0 0 111 A(:,6)=222 A = 1 4 7 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 (2)多次寻访扩展法 AA=A(:,[1:6,1:6]) AA = 1 4 7 0 0 222 1 4 7 0 0 222 2 5 8 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 0 0 0 0 111 222 (3)合成扩展法 B=ones(2,6) B = 1 1 1 1 1 1 1 1 1 1 1 1 AB_r=[A;B] AB_r = 1 4 7 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 1 1 1 1 1 1 1 1 1 1 1 1 AB_c=[A,B(:,1:5)'] AB_c = 1 4 7 0 0 222 1 1 2 5 8 0 0 222 1 1 3 6 9 0 0 222 1 1 0 0 0 0 0 222 1 1 0 0 0 0 111 222 1 1 【例2.10-2】提取子数组,合成新数组。 A A = 1 4 7 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 AB_BA=triu(A,1)+tril(A,-1) AB_BA = 0 4 7 0 0 222 2 0 8 0 0 222 3 6 0 0 0 222 0 0 0 0 0 222 0 0 0 0 0 222 AB1=[A(1:2,end:-1:1);B(1,:)] AB1 = 222 0 0 7 4 1 222 0 0 8 5 2 1 1 1 1 1 1 【例2.10-3】单下标寻访和reshape指令演示。 clear A=reshape(1:16,2,8) A = 1 3 5 7 9 11 13 15 2 4 6 8 10 12 14 16 reshape(A,4,4) ans = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 s=[1 3 6 8 9 11 14 16]; A(s)=0 A = 0 0 5 7 0 0 13 15 2 4 0 0 10 12 0 0 【例2.10-4】“对列(或行)同加一个数”三种的操作方法。 clear,A=reshape(1:9,3,3) A = 1 4 7 2 5 8 3 6 9 b=[1 2 3];A_b1=A-b([1 1 1],:) A_b1 = 0 2 4 1 3 5 2 4 6 A_b2=A-repmat(b,3,1) A_b2 = 0 2 4 1 3 5 2 4 6 A_b3=[A(:,1)-b(1),A(:,2)-b(2),A(:,3)-b(3)] A_b3 = 0 2 4 1 3 5 2 4 6 【例2.10-5】逻辑函数的运用示例。 randn('state',1),R=randn(3,6) R = 0.8644 0.8735 -1.1027 0.1684 -0.5523 -0.6149 0.0942 -0.4380 0.3962 -1.9654 -0.8197 -0.2546 -0.8519 -0.4297 -0.9649 -0.7443 1.1091 -0.2698 L=abs(R)<0.5|abs(R)>1.5 L = 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 R(L)=0 R = 0.8644 0.8735 -1.1027 0 -0.5523 -0.6149 0 0 0 0 -0.8197 0 -0.8519 0 -0.9649 -0.7443 1.1091 0 s=(find(R==0))' s = 2 5 6 8 10 11 17 18 R(s)=111 R = 0.8644 0.8735 -1.1027 111.0000 -0.5523 -0.6149 111.0000 111.0000 111.0000 111.0000 -0.8197 111.0000 -0.8519 111.0000 -0.9649 -0.7443 1.1091 111.0000 [ii,jj]=find(R==111); disp(ii'),disp(jj') 2 2 3 2 1 2 2 3 1 2 2 3 4 4 6 6 102.11​ 高维数组 102.11.1​ 高维数组的创建 【例2.11.1-1】“全下标”元素赋值方式创建高维数组演示。 A(2,2,2)=1 A(:,:,1) = 0 0 0 0 A(:,:,2) = 0 0 0 1 B(2,5,:)=1:3 B(:,:,1) = 0 0 0 0 0 0 0 0 0 1 B(:,:,2) = 0 0 0 0 0 0 0 0 0 2 B(:,:,3) = 0 0 0 0 0 0 0 0 0 3 【例2.11.1-2】低维数组合成高维数组。 clear,A=ones(2,3);A(:,:,2)=ones(2,3)*2;A(:,:,3)=ones(2,3)*3 A(:,:,1) = 1 1 1 1 1 1 A(:,:,2) = 2 2 2 2 2 2 A(:,:,3) = 3 3 3 3 3 3 【例2.11.1-3】由函数ones, zeros, rand, randn直接创建标准高维数组的示例。 rand('state',1111),rand(2,4,3) ans(:,:,1) = 0.6278 0.9748 0.2585 0.6949 0.2544 0.2305 0.0313 0.1223 ans(:,:,2) = 0.4889 0.3898 0.8489 0.0587 0.9138 0.3071 0.4260 0.6331 ans(:,:,3) = 0.2802 0.2073 0.7438 0.2714 0.4051 0.2033 0.4566 0.2421 【例2.11.1-4】借助cat, repmat, reshape等函数构作高维数组。 (1) cat(3,ones(2,3),ones(2,3)*2,ones(2,3)*3) ans(:,:,1) = 1 1 1 1 1 1 ans(:,:,2) = 2 2 2 2 2 2 ans(:,:,3) = 3 3 3 3 3 3 (2) repmat(ones(2,3),[1,1,3]) ans(:,:,1) = 1 1 1 1 1 1 ans(:,:,2) = 1 1 1 1 1 1 ans(:,:,3) = 1 1 1 1 1 1 (3) reshape(1:12,2,2,3) ans(:,:,1) = 1 3 2 4 ans(:,:,2) = 5 7 6 8 ans(:,:,3) = 9 11 10 12 102.11.2​ 高维数组的标识 【例2.11.2-1】维数、大小和长度 clear;A=reshape(1:24,2,3,4); dim_A=ndims(A) size_A=size(A) L_A=length(A) dim_A = 3 size_A = 2 3 4 L_A = 4 102.11.3​ 高维数组构作和操作函数汇总 【例2.11.3-1】数组元素对称交换指令flipdim的使用示例。 A=reshape(1:18,2,3,3) A(:,:,1) = 1 3 5 2 4 6 A(:,:,2) = 7 9 11 8 10 12 A(:,:,3) = 13 15 17 14 16 18 flipdim(A,1) ans(:,:,1) = 2 4 6 1 3 5 ans(:,:,2) = 8 10 12 7 9 11 ans(:,:,3) = 14 16 18 13 15 17 flipdim(A,3) ans(:,:,1) = 13 15 17 14 16 18 ans(:,:,2) = 7 9 11 8 10 12 ans(:,:,3) = 1 3 5 2 4 6 【例2.11.3-2】数组的“维序号左移”重组。 shiftdim(A,1) ans(:,:,1) = 1 7 13 3 9 15 5 11 17 ans(:,:,2) = 2 8 14 4 10 16 6 12 18 shiftdim(A,2) ans(:,:,1) = 1 2 7 8 13 14 ans(:,:,2) = 3 4 9 10 15 16 ans(:,:,3) = 5 6 11 12 17 18 【例2.11.3-3】广义非共轭转置。 permute(A,[2,3,1]) ans(:,:,1) = 1 7 13 3 9 15 5 11 17 ans(:,:,2) = 2 8 14 4 10 16 6 12 18 permute(A,[1,3,2]) ans(:,:,1) = 1 7 13 2 8 14 ans(:,:,2) = 3 9 15 4 10 16 ans(:,:,3) = 5 11 17 6 12 18 【例2.11.3-4】“孤维”的撤消和降维。 B=cat(4,A(:,:,1),A(:,:,2),A(:,:,3)) B(:,:,1,1) = 1 3 5 2 4 6 B(:,:,1,2) = 7 9 11 8 10 12 B(:,:,1,3) = 13 15 17 14 16 18 size(B) ans = 2 3 1 3 C=squeeze(B) C(:,:,1) = 1 3 5 2 4 6 C(:,:,2) = 7 9 11 8 10 12 C(:,:,3) = 13 15 17 14 16 18 size(C) ans = 2 3 3 【例2.11.3-5】赋“空阵”值操作。 A=reshape(1:18,2,3,3) A(:,:,1) = 1 3 5 2 4 6 A(:,:,2) = 7 9 11 8 10 12 A(:,:,3) = 13 15 17 14 16 18 A(:,2:3,:)=[] B=A; A(:,:,1) = 1 2 A(:,:,2) = 7 8 A(:,:,3) = 13 14 size(A) ans = 2 1 3 A_1=squeeze(A) A_1 = 1 7 13 2 8 14 size(B) ans = 2 1 3 B(:,1,:)=[] B = Empty array: 2-by-0-by-3 102.12​ “非数”和“空”数组 102.12.1​ 非数NaN 【例2.12.1-1】非数的产生和性质演示。 (1) a=0/0,b=0*log(0),c=inf-inf Warning: Divide by zero. a = NaN Warning: Log of zero. b = NaN c = NaN (2) 0*a,sin(a) ans = NaN ans = NaN (3) a==nan ans = 0 (4) a~=nan a==b b>c ans = 1 ans = 0 ans = 0 (5) class(a) isnan(a) ans = double ans = 1 【例2.12.1-2】非数元素的寻访 rand('state',0) R=rand(2,5);R(1,5)=NaN;R(2,3)=NaN R = 0.9501 0.6068 0.8913 0.4565 NaN 0.2311 0.4860 NaN 0.0185 0.4447 isnan(R) ans = 0 0 0 0 1 0 0 1 0 0 Linear_index=find(isnan(R)) [r_index,c_index]=ind2sub(size(R),Linear_index); disp('r_index c_index'),disp([r_index c_index]) Linear_index = 6 9 r_index c_index 2 3 1 5 102.12.2​ “空”数组 【例2.12.2-1】关于“空”数组的算例。 (1) a=[],b=ones(2,0),c=zeros(2,0),d=eye(2,0),f=rand(2,3,0,4) a = [] b = Empty matrix: 2-by-0 c = Empty matrix: 2-by-0 d = Empty matrix: 2-by-0 f = Empty array: 2-by-3-by-0-by-4 (2) class(a) isnumeric(a) isempty(a) ans = double ans = 1 ans = 1 which a ndims(a) size(a) a is a variable. ans = 2 ans = 0 0 (3) b_c1=b.*c b_c2=b'*c b_c3=b*c' b_c1 = Empty matrix: 2-by-0 b_c2 = [] b_c3 = 0 0 0 0 (4) a==b ans = 0 b==c ans = Empty matrix: 2-by-0 c>d ans = Empty matrix: 2-by-0 a==0 Warning: Future versions will return empty for empty == scalar comparisons. ans = 0 a~=0 Warning: Future versions will return empty for empty ~= scalar comparisons. ans = 1 (5) A=reshape(-4:5,2,5) A = -4 -2 0 2 4 -3 -1 1 3 5 L2=A>10 find(L2) L2 = 0 0 0 0 0 0 0 0 0 0 ans = [] (6) A(:,[2,4])=[] A = -4 0 4 -3 1 5 102.13​ 关系操作和逻辑操作 102.13.1​ 关系操作 【例2.13.1-1】关系运算示例。 A=1:9,B=10-A,r0=(A<4),r1=(A==B) A = 1 2 3 4 5 6 7 8 9 B = 9 8 7 6 5 4 3 2 1 r0 = 1 1 1 0 0 0 0 0 0 r1 = 0 0 0 0 1 0 0 0 0 【例2.13.1-2】关系运算运用之一:求近似极限,修补图形缺口。 t=-2*pi:pi/10:2*pi; y=sin(t)./t; tt=t+(t==0)*eps; yy=sin(tt)./tt; subplot(1,2,1),plot(t,y),axis([-7,7,-0.5,1.2]), xlabel('t'),ylabel('y'),title('残缺图形') subplot(1,2,2),plot(tt,yy),axis([-7,7,-0.5,1.2]) xlabel('t'),ylabel('yy'),title('正确图形') Warning: Divide by zero. 图2.13-1 极限处理前后的图形对照 102.13.2​ 逻辑操作 【例2.13.2-1】逻辑操作示例。注意逻辑运算和关系运算之间的优先级次序。(详见下节的表2.13-5) A=-3:3; L1=~(A>0) L2=~A>0 L3=~A L4=A>-2&A<1 L1 = 1 1 1 1 0 0 0 L2 = 0 0 0 1 0 0 0 L3 = 0 0 0 1 0 0 0 L4 = 0 0 1 1 0 0 0 【例2.13.2-2】逻辑操作应用之一:逐段解析函数的计算和表现。本例演示削顶整流正弦半波的计算和图形绘制。 t=linspace(0,3*pi,500);y=sin(t); %处理方法一: z1=((t2*pi)).*y; % <3> w=(t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3);% <4> w_n=~w; % <5> z2=w*sin(pi/3)+w_n.*z1; % <6> subplot(1,3,1),plot(t,y,':r'),ylabel('y') subplot(1,3,2),plot(t,z1,':r'),axis([0 10 -1 1]) subplot(1,3,3),plot(t,z2,'-b'),axis([0 10 -1 1]) 图2.13-2 %处理方法二: z=(y>=0).*y; % <11> a=sin(pi/3); z=(y>=a)*a+(y plot(t,y,':r');hold on;plot(t,z,'-b') xlabel('t'),ylabel('z=f(t)'),title('逐段解析函数') legend('y=sin(t)','z=f(t)'),hold off 图 2.13-3 102.13.3​ 关系、逻辑函数
本文档为【_335B_ch02】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_846208
暂无简介~
格式:doc
大小:859KB
软件:Word
页数:0
分类:理学
上传时间:2011-08-15
浏览量:43