matlab课件第3章数组运算及化编程_第1页
matlab课件第3章数组运算及化编程_第2页
matlab课件第3章数组运算及化编程_第3页
matlab课件第3章数组运算及化编程_第4页
matlab课件第3章数组运算及化编程_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

3章数组运算及数组化编特点之一:面向数组设计的运 基本运算单元是数与其它编程语言不同,数据的保存和传送的基组;M函数的基本作用单元也不是标第3 数组运算及数组化编 数组、结构和创 数组运 矩阵及其运 习题 数组及其结构数组的维度a a aa aaa

2NaM

a a

ijMM M MN3.1-1二维数组的结构及相关术数组的规模及相关术语获取数组结构参数的M指令A 获知数组A第nd维度的规模Snd 获知数组A(所有维度规模中的最大值)的长度L 获知数组A所含元素的总数目Ne?思考题行(列)数组的创建递增/减型行(列)数组的创建x=x=a:inc:x=linspace(a,b,n以a,b为左右端点,产生线性等间隔的(1n)行数xx=logspace(a,b,n以a,b为左右端点,产生对数等间隔的(1n)xlinspaceabn等价于xaba)/(n-1):b其他类型行(列)数组的创建逐个元素输入法c1=[2pi/2sqrt(3)运用函数生成全1数组ones(1,n)等。 b1=linspace(0,pi,4)% c1=[2pi/2sqrt(3) %rng 二维通用数组的创建小规模数组的直接输入法[]a=2.7358; %1C=[1,2*a+i*qrt(a);sin(pi/4),a+5*b,3.5+i]% CColumnColumn5.4716+Column3.5000+nC2SC 利 函数创建数的需要,提供许多生成特殊数组的函数。表3.2-1列出了最常用函数。 %产生(24)1数 %产生(33)的单位 %D阵的对角 randsrc(3,20,[-3,-数组构作技法综合【例3.2-7】数组操作函数resh ,diag,blkdiag,cat,repmat的用法;空阵[]删除子数组的用 %产生(18一维数 %把一维数组a重排成(42)的二维数 %再把(42)数组重组成(24) %(24)数组的对角元素形成(21)列数 %(21)列数组构造(22)D1=repmat(B,2,4)%把数组B当作模块,按(24)形式排放该模块,形成(48)数D1([1,3],:)=[【例3.2-8函数flipud,fliplr,rot90对数组的操作

B

010

10000CA010

1000 00D010A01D=rot90(A,2)%90

0

0数组元素的编址全下标编址和单序号编址两种编址间的转换

二维数组元素的寻访按址寻3.2-1格使用说标A(r,cA的“r指定行”和“c指定列”上的A(r,:A的“r指定行”和“全部列”上的A(:,cA的“全部行”和“c指定列”上的标A(:“单下标全元素”寻访。它由A的各列按自左到右的次序,首尾相接而生成“一维长列”数组。A(s“单下标”寻访。生成“s指定的”一维数组。s若是“行数组”(或“列数组”),A(s)就是长度相同的“行数组”(或逻辑标识A(L“逻辑1”寻访,生成“一维”列数组:由与A同样大小的“逻辑数组”L中的“1”元素选出A的对应元素;按“单下标”次按条件寻访全下标寻访%%%%%3)单序号寻访%%% %4) A([1,end])=-A([1,end])5)按条件寻访及赋值 实施数组运算的算符 算符数组运算通则两个同维同大小的(mnAaij]mnBbij]mn的算术运算Ccij]mnC数组的第(i,jABcijaijbij。在此,符#可代表加减乘除幂运算中的任何一种运算。(程序算符见表3.3-1)aBbij]mnCcij]mn,这意味cijabij。(3.3-1)表3.3- A的非共轭转AA的共轭转AaijA+AA+aijA-AA-aijA.*A*aijbij或bijAB或BAB1或ABA/B1ABB\aij^A.^aa+Ba.+aa+aa–Ba.-aa-aa.*abij或bijaBBabij或bijaB或B1aB./aa.^ abaB.^ 程序中出现a+B,a–B的形式,则解为“数组加、减”。换句话说,中,算符.+等同于+,算符.-等同于-。 有丰富的内涵,详见第4章。 算术、关系、逻辑算符+-或加减><&|~与或非C=-D=?各种算符的优先级别↓↓~&|算符数组运算实例及机理解释【例3.3-1】关系运算示例。本例演示:标量与数组的关系运算;数 1111000t505y3.3-disp(['A的数据类型是R1=A==B fprintf('R2的数据属于逻辑类?(1为真;0为假%d\n',islogical(R2)) L3=xor(LA,LB)%LL3=xor(A,B)%<12>ANYONE11ANYONE20实施数组运算的函数函数数组运算通则) x1n含义是:对于(mn)数组

xx

x2n[x

,定义 ijf(X)f(xij)]mn服从数组运算通则的M函数

xm

xmn sin,cos,tan,cot,sec,asin,acos,atan,acot,asec,sind,cosd,tand,cotd,secd,asind,acosd,atand,acotd,asecd,sinh,cosh,tanh,coth,sech,asinh,acosh,atanh,acoth,asech,log,log10,log2,log1p,nexpow2,pow2,realpow,sqrt,realsqrt,nthrootabs,sign,unwrapRoundingandceil,fix,floor,idivide,mod,rem,Specialgamma,gammaln,Conversionchar,double,logical,int2str,int8,int16,num2str,uint8,数组运算中的溢出及非数处理溢出处理0,,0按IEEE规定,0 该非数在中用NaN或nan记述。根据IEEE数学规范,NaN具有以下性质0,,0

, ,0因0 用来标识“野点(点)”;(4)在数据可视化中,用来裁剪图形 xy(x)x3cos(2 e

1xfunctiony=exm030303_1(x) forjj=1:Mifx(jj)<=- elseif- y(jj)=exp(- Functiony=exm030303_2(x) L2=- y(L2)=x(L2).^3.*cos(2*pi*x(L2));y(L3)=exp(- %%%%%%%grid% e121100x12yy

3.3-矩阵运算符和矩阵函数 矩阵函M Am816357Aa492B69123412341234%%AmmBAamB3%%AmLdBAaadBAmm2Ama2194Am2m=1.0e+004 Am2a 4%%%%AmLdDDRdAm矩阵化编程“ 矩阵乘算符分别计算两个复数矩阵Am“和Bpn的乘积DAB(ARjAI)(BRjBI)(ARBRAIBI)j(ARBIAIBR dijdRijjdIij(aRikbRkjaIikbIkj)j(aRikbIkjaIikbRkj kfunction %A、

kifif error('ABAB相乘!')forfor for endend2) A=randn(m,p)+1j*randn(m,p);%B=randn(p,n)+1j*randn(p,n);% Tc Tm fprintf('两种编码所得矩阵间的最大元素相对误差为%6.4e\n',re)fprintf('“直接乘算符法”耗时与“标量循环法”耗时之比为%6.4e\n',tmc) “直接乘算符法”耗时与“标量循环法”耗时之比为8.2508e-003A 后,再请你用一条指令,把A数组的第4、5两列元素都被重新赋值为Inf。 以观察到不同运算方法所得结果不同。(2)B1,B2,B3,B4恢复原矩阵A的M码。(3)用指令检验所得的两个恢复矩阵是否相等。先运行指令x=-3*pi:pi/15:3*pi;y=x;[X,Y]=meshgrid(x,y);warningoff;图形的全部指令。(提示:isnansum求和;realmin是最小形域内计算以下二元函数。然后,比较两个计算结果中元素的最大相对误差,并使用用meshgrid生成

温馨提示

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

评论

0/150

提交评论