matlab 上机练习1-2 (1).doc_第1页
matlab 上机练习1-2 (1).doc_第2页
matlab 上机练习1-2 (1).doc_第3页
matlab 上机练习1-2 (1).doc_第4页
matlab 上机练习1-2 (1).doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一次上机练习:数值数组及其运算3.1 引导【*例3.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.0000y = 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图3.1-13.2 一维数组的创建和寻访3.2.1 一维数组的创建3.2.2 一维数组的子数组寻访和赋值【*例3.2.2-1】子数组的寻访(Address)。rand(state,0)%把均匀分布伪随机发生器置为0状态 x=rand(1,5)%产生的均布随机数组 x =0.9501 0.2311 0.6068 0.4860 0.8913 x(3)%寻访数组x的第三个元素。 ans =0.6068 x(1 2 5)%寻访数组x的第一、二、五个元素组成的子数组。 ans =0.9501 0.2311 0.8913 x(1:3)%寻访前三个元素组成的子数组 ans = 0.9501 0.2311 0.6068 x(3:end)%寻访除前2个元素外的全部其他元素。end是最后一个元素的下标。 ans = 0.6068 0.4860 0.8913 x(3:-1:1)%由前三个元素倒排构成的子数组 ans = 0.6068 0.2311 0.9501 x(find(x0.5) %由大于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 【*例3.2.2-2】子数组的赋值(Assign)。x(3) = 0%把上例中的第三个元素重新赋值为0 x = 0.9501 0.2311 0 0.4860 0.8913 x(1 4)=1 1%把当前x数组的第一、四个元素都赋值为1。 x = 1.0000 0.2311 0 1.0000 0.8913 3.3 二维数组的创建3.3.1 直接输入法【*例3.3.1-1】在MATLAB环境下,用下面三条指令创建二维数组C。a=2.7358; b=33/79;%这两条指令分别给变量 a ,b 赋值。C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i %这指令用于创建二维数组C C = 1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3.5000 + 1.0000i 【*例3.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 3 4 5 6M_i = 11 12 13 14 15 16CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i 3.3.2 利用M文件创建和保存数组【例3.3.2-1】创建和保存数组 AM的 MyMatrix.m 文件。% MyMatrix.mCreation 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;3.4 二维数组元素的标识3.4.1 “全下标”标识3.4.2 “单下标”标识3.4.3 “逻辑1”标识【*例3.4.3-1】找出数组中所有绝对值大于3的元素。A=zeros(2,5);%预生成一个(2*5)全零数组A(:)=-4:5%运用“全元素”赋值法获得AL=abs(A)3%产生与A同维的“0-1”逻辑值数组islogical(L)%判断L是否逻辑值数组。输出若为1,则是。X=A(L)%把L中逻辑值1对应的A元素取出 A = -4 -2 0 2 4 -3 -1 1 3 5L = 1 0 0 0 1 0 0 0 0 1ans = 1X = -4 4 5 【*例3.4.3-2】演示逻辑数组与一般双精度数值数组的关系和区别。(本例在例3.4.3-1基础上进行)。(1)逻辑数组与双精度数组的相同之处Num=1,0,0,0,1;0,0,0,0,1;%产生与L数组外表完全相同的“双精度数组”N_L=Num=L%假如Num与L数值相等,则应得 1 。c_N=class(Num)%用class指令检查Num的类属c_L=class(L)%用class指令检查L的类属 N_L = 1 1 1 1 1 1 1 1 1 1c_N =doublec_L =double (2)逻辑数组与一般双精度数组的差别islogical(Num)%检查Num是否属于逻辑数组类Y=A(Num)%试探Num能否象L一样具有标识作用 ans = 0? Index into matrix is negative or zero. See release notes on changes to logical indices. 3.5 二维数组的子数组寻访和赋值【*例3.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)%由“单下标行数组”寻访产生A元素组成的行数组Sa=10 20 30%Sa是长度为3的“列数组”A(s)=Sa%单下标方式赋值 ans = 2 3 5Sa = 10 20 30A = 1 20 30 7 10 4 6 8 A(:,2 3)=ones(2)%双下标赋值方式:把A的第2、3列元素全赋为1 A = 1 1 1 710 1 1 8 3.6 执行数组运算的常用函数3.6.1 执行数组运算的常用函数【*例3.6.2-1】演示pow2的数组运算性质。A=1:4;5:8%生成数组 A = 1 2 3 4 5 6 7 8 pow2(A)%计算的结果也是数组 ans = 2 4 8 1632 64 128 256 3.7 数组运算和矩阵运算3.7.1 数组运算和矩阵运算指令对照汇总【*例 3.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.0000iA_A = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000iA_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 3.8 多项式的表达方式及其操作3.8.1.1 多项式行向量的创建方法【*例 3.8.1.2-1】求3阶方阵A的特征多项式。A=11 12 13;14 15 16;17 18 19;PA=poly(A) %A的特征多项式PPA=poly2str(PA,s) %以较习惯的方式显示多项式 PA = 1.0000 -45.0000 -18.0000 -0.0000PPA = s3 - 45 s2 - 18 s - 2.8387e-015 【*例 3.8.1.2-2】由给定根向量求多项式系数向量。R=-0.5,-0.3+0.4*i,-0.3-0.4*i;%根向量P=poly(R)%R的特征多项式PR=real(P) %求PR的实部PPR=poly2str(PR,x) P = 1.0000 1.1000 0.5500 0.1250PR = 1.0000 1.1000 0.5500 0.1250PPR = x3 + 1.1 x2 + 0.55 x + 0.125 3.8.2 多项式运算函数【*例3.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 s2 + 4 s + 3 【*例 3.8.2-2】两种多项式求值指令的差别。S=pascal(4)%生成一个4阶方阵P=poly(S);PP=poly2str(P,s)PA=polyval(P,S)%独立变量取数组S元素时的多项式值PM=polyvalm(P,S) %独立变量取矩阵S时的多项式值 S = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20PP = s4 - 29 s3 + 72 s2 - 29 s + 1PA = 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.3779PM = 1.0e-011 * -0.0077 0.0053 -0.0096 0.0430 -0.0068 0.0481 -0.0110 0.1222 0.0075 0.1400 -0.0095 0.2608 0.0430 0.2920 -0.0007 0.4737 【*例 3.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 = 3.9 标准数组生成函数和数组操作函数3.9.1 标准数组生成函数【*例3.9.1-1】标准数组产生的演示。ones(1,2)%产生长度为2的全1行数组 ans = 1 1 ones(2)%产生的全1阵 ans = 1 1 1 1 randn(state,0)%把正态随机数发生器置0randn(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)%取D阵的对角元 ans = 1 1 1 diag(diag(D)%内diag取D的对角元,外diag利用一维数组生成对角阵 ans = 1 0 0 0 1 0 0 0 1 repmat(D,1,3)%在水平方向“铺放”三个D阵 ans = 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 3.9.2 数组操作函数【*例 3.9.2-1】diag与reshape的使用演示。a=-4:4%产生一维数组A=reshape(a,3,3)%把一维数组a重排成的二维数组 a = -4 -3 -2 -1 0 1 2 3 4A = -4 -1 2 -3 0 3 -2 1 4 a1=diag(A,1)%取A阵“第一上对角线”的元素 a1 = -1 3 A1=diag(a1,-1)%产生以a1数组元素为“第一下对角线”元素的二维数组 A1 = 0 0 0 -1 0 0 0 3 0 【*例3.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)%逆时针旋转90度 ans = 2 3 4 -1 0 1 -4 -3 -2 【*例3.9.2-3】演示Kronecker乘法不具备“可交换规律”。B=eye(2)%产生单位阵C=reshape(1:4,2,2)%利用重组操作产生矩阵 B = 1 0 0 1C = 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 3.10 数组构作技法综合【*例3.10-1】数组的扩展。(1)数组的赋值扩展法A=reshape(1:9,3,3)%创建数组A A = 1 4 7 2 5 8 3 6 9 A(5,5)=111%扩展为数组。扩展部分除(5,5)元素为111外,其余均为0。 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) %相当于指令repmat(A,1,2),读者可以试试。 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)%创建全1数组 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 【*例3.10-2】提取子数组,合成新数组。A%重显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)%利用操作函数,使主对角元素为全0 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 【*例3.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的元素重新赋值 A = 0 0 5 7 0 0 13 15 2 4 0 0 10 12 0 0 【*例3.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的第1,2,3行分别减b向量1 2 3 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 【*例3.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)1.5%不等式条件运算,结果给出逻辑数组 L = 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 R(L)=0%“逻辑1”对应的元素赋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)%利用find获得符合关系等式条件的元素“单下标” 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(Rc%两个非数不能比较大小 ans = 1ans = 0ans = 0 (5)非数的属性判断class(a)%数据类型归属isnan(a)%该指令是唯一能正确判断非数的指令。 ans =doubleans = 1 【*例3.12.1-2】非数元素的寻访%创建带非数的二维数组rand(state,0)%将随机发生器置0。目的是使读者便于把自己运算结果与本书对照。R=rand(2,5);R(1,5)=NaN;R(2,3)=NaN R = 0.95

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论