第三章matlab.doc
1第3章数值数组及向量化运算数值数组(NumericArray)和数组运算(ArrayOperations)始终是MATLAB的核心内容。本书从第3章起,全部注意力将集中于数值数组及其运算。本章系统阐述数组浮点算法的特点;一、二维数值数组的创建和寻访;数组运算和向量化编程;实现数组运算的基本函数;常用标准数组生成函数和数组构作技法;非数NaN、“空”数组概念和应用;关系和逻辑操作。3.1数值计算的特点和地位【例3.1-1】已知,求。ttfcos2dtfx0(1)符号计算解法symstxftt2*costsxintft,t,0,xftt2*costsxx2*sinx-2*sinx2*x*cosx(2)数值计算解法dt0.05;t0dt5;Ftt.2.*cost;Sxdt*cumtrapzFt;tend-4endSxend-4endplott,Sx,.k,MarkerSize,12xlabelx,ylabelSx,gridonans4.80004.85004.90004.95005.0000ans-20.1144-19.9833-19.7907-19.5345-19.2131图3.1-1在区间[0,5]采样点上算得的定积分值【例3.1-2】已知,求。sintetf40dtfx(1)符号计算解法symstxftexp-sint2sxintft,t,0,4ftexp-sintWarningExplicitintegralcouldnotbefound.Insym.intat58sxintexp-sint,t0..4(2)数值计算解法dt0.05;t0dt4;Ftexp-sint;Sxdt*cumtrapzFt;Sxendplott,Ft,*r,MarkerSize,4holdonplott,Sx,.k,MarkerSize,15holdoffxlabelxlegendFt,Sxans3.0632图3.1-2在区间[0,4]中间的被积函数及其原函数的离散计算结果3.2数值数组的创建和寻访3.2.1一维数组的创建一递增/减型一维数组的创建二通用型一维数组的创建【例3.2-1】一维数组的常用创建方法举例。a116a20pi/4pia31-0.10a1123456a200.78541.57082.35623.1416a3Columns1through61.00000.90000.80000.70000.60000.50003Columns7through110.40000.30000.20000.10000b1linspace0,pi,4b2logspace0,3,4b101.04722.09443.1416b21101001000c1[2pi/2sqrt335i]c1Columns1through32.00001.57081.7321Column43.00005.0000irandstate,0c2rand1,5c20.95010.23110.60680.48600.89133.2.2二维数组的创建一小规模数组的直接输入法【例3.2-2】在MATLAB环境下,用下面三条指令创建二维数组C。a2.7358;b33/79;C[1,2*ai*b,b*sqrta;sinpi/4,a5*b,3.5i]C1.00005.47160.4177i0.69090.70714.82443.50001.0000i二中规模数组的数组编辑器创建法【例3.2-3】根据现有数据创建一个的数组。83图3.2-1利用数组编辑器创建中规模数组三中规模数组的M文件创建法【例3.2-4】创建和保存数组AM的MyMatrix.m文件。(1)打开文件编辑调试器,并在空白填写框中输入所需数组(见图3.2-2)。(2)最好,在文件的首行,编写文件名和简短说明,以便查阅(见图3.2-2)。(3)保存此文件,并且文件起名为MyMatrix.m。4(4)以后只要在MATLAB指令窗中,运行MyMatrix.m文件,数组AM就会自动生成于MATLAB内存中。图3.2-2利用M文件创建数组四利用MATLAB函数创建数组【例3.2-5】标准数组产生的演示。ones2,4ans11111111randnstate,0randn2,3ans-0.43260.1253-1.1465-1.66560.28771.1909Deye3D100010001diagDans111diagdiagDans100010001randsrc3,20,[-3,-1,1,3],1ansColumns1through10313-1-33-3-3-131313-1111113-1-3-11-13-1-11Columns11through20-1-1-311-33-113113-1-1-3-1-11-31-1-33-1-13-1333.2.3二维数组元素的标识和寻访【例3.2-6】本例演示数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。Azeros2,65A112A000000000000A135791124681012A2,4A8ans8ans8A,[1,3]A[1,2,5,6]ans1526ans1256A,4endans791181012A2,125[-1,-3,-5]A1357911-14-38-512BA[1,2,2,2],[1,3,5]B159-1-3-5-1-3-5-1-3-5LA1判断A中,哪些元素不大于1L2A0A2*pi.*y;wtpi/3wnw;z2w*sinpi/3wn.*z1;12subplot4,1,1,plott,y,r,axis[0,10,-1.5,1.5]ylabely,gridonsubplot4,1,2,plott,z1,r,axis[0,10,-0.2,1.5],ylabelz1subplot4,1,3,plott,wn,r,axis[0,10,-0.2,1.5],ylabelwnsubplot4,1,4,plott,z2,-b,axis[0,10,-0.2,1.5],ylabelz2xlabelt012345678910-101y01234567891000.511.5z101234567891000.511.5wn01234567891000.511.5z2t图3.5-2逐段解析函数的产生3.5.3常用逻辑函数习题31.要求在闭区间上产生具有10个等