【例23.1-2】复数数组的另一种输入方式 Mr=[1,2,3;4,5,6],Mi=[11,12,13;14,15,16 cN=Mx+⊥★M 1 11 252 13 1.0000+11.000 2.0000+12.000013.0000+13.0000i 4.0000+14.000 5.0000+15.0000i6.0000+16.0000i 2.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; 3,304,305,306,307,308,309] (3) 24二维数组元素的标识 2.4.1 “全下标”标识 2.4.2 “单下标”标识 2.4.3 “逻辑1”标识 4-2024 【例24.3-1】找出数组A= -3-1135|中所有绝对值大于3的元素。 A=zeros(2, 5) A(:)=-4:5 L=abs(A)>3 illogical(L) X-A(L) 100 1 【例243-2】演示逻辑数组与一般双精度数值数组的关系和区别。(本例在例243-1基础
3 【例 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 2.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) 2.4 二维数组元素的标识 2.4.1 “全下标”标识 2.4.2 “单下标”标识 2.4.3 “逻辑 1”标识 【例 2.4.3-1】找出数组 ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − − − − = 3 1 1 3 5 4 2 0 2 4 A 中所有绝对值大于 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) Nm=[1,0,0,0,1;0,0,0,0,11; N L=NumEsL c N=class(Num) c L=class(L) 1 double C L double illogical(Num) Y=A(Num) 0 ??? Index into matrix is negative or zero. See release notes on change logical indices 25二维数组的子数组寻访和赋值 【例2.5-1】不同赋值方式示例。 A=zeros(2, 4) 0 0 0 1 s=[235]; A(s) sa=[102030 ans 30 A(:,[231)=ones(2) 26执行数组运算的常用函数
4 上进行)。 (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. 2.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 2.6 执行数组运算的常用函数
261函数数组运算规则的定义: 2.6.2 执行数组运算的常用函数 【例26.2-1】演示pow2的数组运算性质 A=[1:4:5:8] p。w2(A) 81 64128 27数组运算和矩阵运算 2.7.1 数组运算和矩阵运算指令对照汇总 【例2.7.1-1】两种不同转置的比较 c1ear;A=zer。s(2,3) A(:)=1:6 A=A★(1+1) AA=A, A M=A 1.0000+1.000013.0000+3.000015.0000+ 00i 2.0000+2.0000 4.0000+4.000016.0000+ AA 1.0000+1.000012.0000+2.0000i 3.0000+3.0000i4.0000+4.0000i 5.0000+5.0000i6.0000+6.0000i 1.0000-1.000012.0000-2.0000i 3.0000-3.0000 4.0000-4.0000i 5.0000-5.0000i6.0000-6.0000i 28多项式的表达方式及其操作 2.8.1 多项式的表达和创建 多项式表达方式的约定 二多项式行向量的创建方法 【例2.8.1.2-1】求3阶方阵A的特征多项式。 A=[111213:141516:171819]; PA-Poly(A) PPA-poly2str(PA,'s) 1.0000-45.0000-18.0000 0.000 PPA= 3-45s^2-18s+1.8303e-014 【例28.1.2-2】由给定根向量求多项式系数向量。 R=[-0.5,-0.3+0.4*i,-0.3-0.4*i
5 2.6.1 函数数组运算规则的定义: 2.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 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.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 2.8 多项式的表达方式及其操作 2.8.1 多项式的表达和创建 一 多项式表达方式的约定 二 多项式行向量的创建方法 【例 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];
PR=real(P) PPR=poly2str(PR,'x) 1.0000 1.1000 0.55000.125 PR= 1.0000 1.1000 0.5500 0.1250 PPR x^3+1.1x^2+0.55x+0.125 2.8.2 多项式运算函数 【例28.2-1】求 (s2+2)(s+4)(s+1 的“商”及“余”多项式 s +s+ p1=conv([1,0,2],conv([1,4],[1,11)); p2=[1011 [a,r]=decon(p1, p2)i cq=商多项式为 cr=余多项式为 disp([cq, poly2str(a,'s)]),disp([cr, poly2str(r,'s)]) 商多项式为 s+5 余多项式为 5s^2+4s+3 【例2.82-2】两种多项式求值指令的差别 - pascal(4) P=poly(S) PP-poly2str(P,'s) PA-polyval(P, S) PM-polyvalm(P, S) 1111 1234 10 s^4-29s^3+72s^2-29s+1 0.00160.00160.00160.0016 0.00160.0015 0.0140-0.0563 0.0016 0.0140 0.2549-1.2089 0.0016-0.0563-1.2089-4.3779 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 【例282-3】部分分式展开 a=[1,3,4,2,7,2 b=[3,2,5,4,6] [r, s,k]=residue(b, a) 1.1274+1.15131 1.1274-1.1513i 0.0232-0.07221 0.0232+0.0722i 0.7916
6 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 2.8.2 多项式运算函数 【例 2.8.2-1】求 1 ( 2)( 4)( 1) 3 2 + + + + + s s s s s 的“商”及“余”多项式。 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.2673 0.4176+1.1130i 0.4176-1.1130i 0.2991 29标准数组生成函数和数组操作函数 2.9.1 标准数组生成函数 【例29.1-1】标准数组产生的演示。 ones ans ones(2) ans= randn('state,o) randn(2, 3) 0.4326 0.1253-1.1465 1.6656 0.28771.1909 D=eye(3) 100 diag(D) diag(diag(D)) ans 0 repmat(D, 1, 3) ans Columns 1 through 8 001 010 olumn 9 001
7 -1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 k = [] 2.9 标准数组生成函数和数组操作函数 2.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