欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    matlab入门及数组.ppt

    • 资源ID:70792521       资源大小:3.67MB        全文页数:73页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    matlab入门及数组.ppt

    1第二讲第二讲 MATLABMATLAB基础知识与基础知识与数组数组介绍课本第一章介绍课本第一章1.31.3及第及第3 3章章提纲提纲MatlabMatlab入门(数值表示、变量、表达式)入门(数值表示、变量、表达式)数组(教材第数组(教材第3 3章和附录章和附录A A)提纲提纲MatlabMatlab入门(数值表示、变量、表达式入门(数值表示、变量、表达式)数组(教材第数组(教材第3 3章和附录章和附录A A)介绍一些基本规定。这里先介绍关于变量的若干规定。1 1、数值的记述、数值的记述 MATLAB的数值采用习惯的十进制表示,可以带小数点或负号。以下记述都合法。3 -99 0.001 9.456 1.3e-34.5e33数值通常采用“占用64位内存的双精度”表示。eps。2 2、变量命名规则、变量命名规则l变量名、函数名是对字母大小写敏感的。如变量myvar和MyVar表示两个不同的变量。sin是MATLAB定义的正弦函数名,但SIN,Sin等都不是。l变量名的第一个字符必须是英文字母,其后最多可包含63个字符(英文、数字和下连符)。如myvar201是合法的变量名。l变量名中不得包含空格、标点、运算符,但可以包含下连符。如变量名my_var_201是合法的,且读起来更方便。而my,var201由于逗号的分隔,表示的就不是一个变量名。l用户自定义变量或函数名n不能与matlab关键词同名,iskeyword VarNamen不能与Matlab自用变量名、函数名、文件夹相同 exist VarName3 3、MATLABMATLAB默认的预定义变量默认的预定义变量 在MATLAB中有一些所谓的预定义变量(Predefined Variable),见下表。每当MATLAB启动,这些变量就被产生。这些变量都有特殊含义和用途。建议:用户在编写命令和程序时,应尽可能不对下表所列预定义变量名重新赋值,以免产生混淆。表表MATLABMATLAB中最常用的预定义变量中最常用的预定义变量不是一个数(Not a Number),如0/0,虚单元圆周率说明假如用户对表中任何一个预定义变量进行赋值,则那个变量的默认值将被用户新赋的值“临时”覆盖。所谓“临时”是指:假如使用clear命令清除MATLAB内存中的变量,或MATLAB命令窗被关闭后重新启动,那么所有的预定义变量将被重置为默认值,不管这些预定义变量曾被用户赋过什么值。l被0 除是允许的。它不会导致程序执行的中断,只是在给出警告信息的同时,用一个特殊名称(如Inf,NaN)记述。这个特殊名称将在以后的计算中以合理的形式发挥作用。4 4、运算符和表达式、运算符和表达式(1)标量算术运算符在MATLAB中的表达方式,见下表。(3.3节数组和3.4节矩阵)(2)Matlab表达式由已赋值变量、运算符和已经存在的函数组成。可通过等号“=”向某个变量赋值。如无等号,结果默认保存在ans变量中说明lMatlabMatlab用用“”和和”/”/”分别表示分别表示“左除左除”和和“右除右除”。对标量而言,两者没有区别。对。对标量而言,两者没有区别。对矩阵产生不同影响。(后面详细说明)矩阵产生不同影响。(后面详细说明)lMATLABMATLAB表达式的书写规则与表达式的书写规则与“手写方式手写方式”几乎完全相同。几乎完全相同。l表达式按与常规相同的优先级自左至右执行表达式按与常规相同的优先级自左至右执行运算。运算。l优先级:指数运算级别最高,乘除次之,加优先级:指数运算级别最高,乘除次之,加减最低。减最低。l括号改变运算的次序。括号改变运算的次序。5 5、面向复数设计的运算、面向复数设计的运算MATLABMATLAB的所有运算都是定义在复数域上的。这样的所有运算都是定义在复数域上的。这样设计的好处是:在进行运算时,不必像其他程序语言设计的好处是:在进行运算时,不必像其他程序语言那样把实部、虚部分开处理。为描述复数,虚数单位那样把实部、虚部分开处理。为描述复数,虚数单位用预定义变量用预定义变量 i i或或 j j表示。表示。【例】复数表达,及计算。本例演示:正确的复数输入法;涉及复数表示方式的基本命令。1)经典教科书的直角坐标表示法z1=4+3i%合法,但建议少用或不用 z1=4.0000+3.0000i l在这种书写格式中,3i是一个完整的虚数,在3和i之间不许“空格”存在2)采用运算符构成的直角坐标表示法和极坐标表示法z2=1+2*iz2=1+2*i%运算符构成的直角坐标表示法运算符构成的直角坐标表示法z3=2*exp(i*pi/6)z3=2*exp(i*pi/6)%运算符构成的极坐标表示法运算符构成的极坐标表示法z=z1*z2/z3z=z1*z2/z31.8840+5.2631i z2=1.0000+2.0000iz3=z=1.7321+1.0000i运行结果3)复数的实虚部、模和幅角计算real_z=real(z)real_z=real(z)image_z=imag(z)image_z=imag(z)magnitude_z=abs(z)magnitude_z=abs(z)angle_z_radian=angle(z)angle_z_radian=angle(z)%弧度单位弧度单位angle_z_degree=angle(z)*180/piangle_z_degree=angle(z)*180/pi%度数单位度数单位【例】图示复数本例演示:MATLAB的运算在复数域上进行;命令后“分号”的作用;复数加法的几何意义;展示MATLAB的可视化能力。的和(下图)。z1=4+3*i;z2=1+2*i;z1=4+3*i;z2=1+2*i;z12=z1+z2z12=z1+z2%以下用于绘图以下用于绘图clf,hold onclf,hold onplot(0,z1,z12,-b,LineWidth,3)plot(0,z1,z12,-b,LineWidth,3)plot(0,z12,-r,LineWidth,3)plot(0,z12,-r,LineWidth,3)plot(z1,z12,ob,MarkerSize,8)plot(z1,z12,ob,MarkerSize,8)hold off,grid on,hold off,grid on,axis equalaxis equalaxis(0,6,0,6)axis(0,6,0,6)text(3.5,2.3,z1)text(3.5,2.3,z1)text(5,4.5,z2)text(5,4.5,z2)text(2.5,3.5,z12)text(2.5,3.5,z12)xlabel(real)xlabel(real)ylabel(image)ylabel(image)shgshg%在一个物理行中,允许输入多条命令。在一个物理行中,允许输入多条命令。%但各命令间要用但各命令间要用“分号分号”或或“逗号逗号”分开。分开。%命令后采用命令后采用“分号分号”,使运算结果不显示。,使运算结果不显示。%clf%clf清空图形窗。逗号用来分隔两个命令。清空图形窗。逗号用来分隔两个命令。【例】用MATLAB计算 能得到 2 吗?1)直接计算时,得到处于第一象限的方根。a=-8;a=-8;r_a=a(1/3)r_a=a(1/3)%求求3 3次根次根 2)的全部方根计算如下:%先构造一个多项式p=1,0,0,-a;p=1,0,0,-a;%p是多项式3)图形表示MR=abs(R(1);MR=abs(R(1);%计算复根的模计算复根的模t=0:pi/20:2*pi;t=0:pi/20:2*pi;%产生参变量在产生参变量在0 0到到2*pi2*pi间的一组采样点间的一组采样点x=MR*sin(t);x=MR*sin(t);y=MR*cos(t);y=MR*cos(t);plot(x,y,b:),grid on plot(x,y,b:),grid on%画一个半径为画一个半径为R R的圆的圆%注意注意“英文状态逗号英文状态逗号”在不同位置的作用在不同位置的作用hold onhold onplot(R(2),.,MarkerSize,30,Color,r)plot(R(2),.,MarkerSize,30,Color,r)%画第一象限的方根画第一象限的方根plot(R(1,3),o,MarkerSize,15,Color,b)plot(R(1,3),o,MarkerSize,15,Color,b)%画另两个方根画另两个方根axis(-3,3,-3,3),axis squareaxis(-3,3,-3,3),axis square%保证屏幕显示呈真圆保证屏幕显示呈真圆hold offhold off 注:注:MarkerSizeMarkerSize图形对象属性,点大小图形对象属性,点大小 square-square-轴属性为方形轴属性为方形说明l本例有助于理解MATLAB的计算特点。l对复数进行方根运算时,MATLAB只给出处于“第一象限”的那个根,运算只返还一个“主解”。要得复数的全部方根,必须专门编写程序。6 6、面向数组设计的运算、面向数组设计的运算 在MATLAB中,标量数据被看作 的数组(Array)数据。所有的数据都被存放在适当大小的数组中。为加快计算速度(运算的向量化处理),MATLAB对以数组形式存储的数据设计了两种基本运算:一种是所谓的数组运算;另一种是所谓的矩阵运算。在此仅以算例展示MATLAB的计算特点,在后续的课程中更详细的叙述。【例】实数数组的“一行”输入法。AR=1,3;2,4AR=1,3;2,4 实数数组的“分行”输入法。AI=5,7AI=5,76,86,8 说明l在MATLAB中,不必事先对数组维数及大小做任何说明,内存将自动配置。l二维数组输入的三大要素:数组标识符“”;元素分隔符空格或逗号“,”;数组行间分隔符分号“;”或“回车键”。lMATLAB对字母大小写是敏感的。比如本例中的数组赋给了变量AR,而不是 Ar,aR,或ar。l在全部键入一个命令行内容后,必须按下 Enter 键,该命令才会被执行。【例】对复数数组进行求实部、虚部、模和幅角的运算。l本例演示:复数数组的生成;MATLAB命令对数组元素“并行操作”的实质。1)创建复数数组AR=1,3;2,4;AI=5,7;6,8;AR=1,3;2,4;AI=5,7;6,8;A=AR-AI*iA=AR-AI*i%形成复数矩阵形成复数矩阵 2)求复数数组的实部和虚部A_real=real(A)A_real=real(A)A_image=imag(A)A_image=imag(A)3)求复数数组中各元素的模和幅角循 环法(笨拙!)forfor m=1:2m=1:2 for for n=1:2 n=1:2 Am1(m,n)=abs(A(m,n);Am1(m,n)=abs(A(m,n);Aa1(m,n)=angle(A(m,n)*180/pi;Aa1(m,n)=angle(A(m,n)*180/pi;%以度为单位计算幅角以度为单位计算幅角 endendendendAm1,Aa1 Am1,Aa1 4)求复数数组中各元素的模和幅角直接法Am2=abs(A)Am2=abs(A)Aa2=angle(A)*180/piAa2=angle(A)*180/pi 说明l函数real,imag,abs,angle是同时、并行地作用于数组的每个元素。对4个元素运算所需的时间大致与对单个元素所需时间相同。这有利于运算速度的提高。这是“向量化”运算的一种形式。l本例给出了循环法求各元素模和幅角的命令。这是很笨拙的计算方法。对于MATLAB以外的许多编程语言来说,可能不得不采用“循环”处理方式来解本例。记住:对于MATLAB来说,应该尽量摒弃“循环”处理,而采用“向量化”处理方式。【例】画出衰减振荡曲线,的取值范围是 t=0:pi/50:4*pi;t=0:pi/50:4*pi;%定义自变量定义自变量t t的取值数组的取值数组y=exp(-t/3)y=exp(-t/3).*.*sin(3*t);sin(3*t);%计算与自变量相应的计算与自变量相应的y y数组。数组。plot(t,y,-r,LineWidth,2)plot(t,y,-r,LineWidth,2)%绘制曲线绘制曲线axis(0,4*pi,-1,1)axis(0,4*pi,-1,1)xlabel(t),ylabel(y)xlabel(t),ylabel(y)注意:乘法符前面的小黑点。注意:乘法符前面的小黑点。乘法符前面的小黑点,称为点乘,对于矩阵的点乘,即为对应元素的乘法例如:A=A1,A2,A3,A4;B=B1,B2,B3,B4C=A.*B=A1*B1,A2*B2,A3*B3,A4*B4说明l本例第二条命令中的“.*”符号表示乘法是在两个数组相同位置上的元素间进行的。Matlab中把这种乘法称为“数组乘”或简称“点乘”。数组乘的引入,不但使得程序简洁自然,而且避免了耗费机时的“循环计算”。关于数组运算的详细叙述以后进行。l本例第二条命令是典型的“向量化”处理形式。建议同学们,只要可能,应尽量采用“向量化”运算形式。【例】复数矩阵的生成,既计算矩阵A,B的乘积 本例演示:MATLAB矩阵运算命令的简捷性。A=1-5*i,3-7i;2-6*i,4-8*i A=1-5*i,3-7i;2-6*i,4-8*i%复数数组的又一种输入方式复数数组的又一种输入方式B=3+2i,2+6i;5+3*i,4-2*i B=3+2i,2+6i;5+3*i,4-2*i%注意标点符号的作用注意标点符号的作用C=A*B C=A*B%矩阵乘法矩阵乘法 说明l当数组被赋予“变换”属性时,二维数组就被称为矩阵。只有当两个矩阵的“内维大小相等”时,矩阵乘法才能进行。本例中,矩阵A的列数与矩阵B的行数相等,所以可以进行A乘B。l从表达方式看,“矩阵相乘”的命令格式与“标量相乘”命令格式一样。在其他编程语言中,矩阵乘法不得不依赖“循环”进行。lMatlab之所以能把矩阵运算表达得像标准“线性代数”那样简洁易读、自然流畅,那是由于Matlab的设计者采用了“面向对象”编程技术。提纲提纲Matlab入门(数值表示、变量、表达式)数组(教材第数组(教材第3 3章和附录章和附录A A)lMatlab的数据保存和传输的基本单位不是标量,而是复数阵列型数据,即数组lMatlab算数、关系、逻辑运算的基本运算单元也不是标量,而是数组lMatlab提供的许多M函数的基本作用单元也不是标量也是数组数组运算及数组化编程数组运算及数组化编程数组及其运算在数组及其运算在MatlabMatlab是最基本元素是最基本元素1 1 数组、结构数组、结构l一个个标量数据被组织成矩形或长方体型的阵列集合,称一个个标量数据被组织成矩形或长方体型的阵列集合,称为数组为数组矩阵:由矩阵:由mnmn个标数组成的排成个标数组成的排成m m行行n n列的一个矩形的数表,其中列的一个矩形的数表,其中0000矩阵为空矩阵矩阵为空矩阵()()。数表中第。数表中第i i(1im)(1im)行第行第j(1jn)j(1jn)列的数据列的数据称为矩阵元素称为矩阵元素 二维数组二维数组标量标量 :1111的矩阵,即为只含一个数的矩阵。的矩阵,即为只含一个数的矩阵。向量:向量:1n1n或或n1n1的矩阵,即只有一行的或者一列的矩阵。只有一行的矩阵,即只有一行的或者一列的矩阵。只有一行的矩阵称为行向量,只有一列的矩阵称为列向量。数表中第的矩阵称为行向量,只有一列的矩阵称为列向量。数表中第i i(1in)(1in)个数据称为向量元素。个数据称为向量元素。更一般数组是矩阵的延伸,一般指多维数组,其中标量、向量和矩阵更一般数组是矩阵的延伸,一般指多维数组,其中标量、向量和矩阵都是数组的特例。都是数组的特例。l获取数组结构参数的获取数组结构参数的M M命令命令Nd=ndims(A)Nd=ndims(A)维度数目维度数目S=size(A)S=size(A)维度规模维度规模Snd=size(A,nd)Snd=size(A,nd)某维度规模某维度规模L=length(A)L=length(A)长度长度Ne=numel(A)Ne=numel(A)总数目总数目2 2 一维数组的创建和寻访一维数组的创建和寻访创建创建:(1 1)逐个元素输入法)逐个元素输入法x=2pi/2sqrt(3)3+5ix=2pi/2sqrt(3)3+5ix=2,pi/2,sqrt(3),3+5ix=2,pi/2,sqrt(3),3+5i(2 2)冒号生成法)冒号生成法(x=a:inc:b)(x=a:inc:b)x=1:2:10;y=1:100;z=100:-3:1;x=1:2:10;y=1:100;z=100:-3:1;(3 3)线性)线性(或对数或对数)定点法定点法x=linspace(a,b,n)(x=linspace(a,b,n)(等差等差)同同x=a:(b-a)/(n-1):bx=a:(b-a)/(n-1):bx=logspace(a,b,n)(x=logspace(a,b,n)(等比等比)%n)%n为数组长度为数组长度例例:x=linspace(1,7,5):x=linspace(1,7,5)访问访问:x(3),x(1,35),x(1:3),x(4:end),x(find(x4)x(3),x(1,35),x(1:3),x(4:end),x(find(x4)(4)(4)函数生成法例函数生成法例:ones(1,6):ones(1,6)3.3.二维数组的创建和寻访二维数组的创建和寻访(1 1)小规模数组直接创建)小规模数组直接创建:A=23;5,9;A=23;5,9;(2 2)中规模数组用数组编辑器或文件创建)中规模数组用数组编辑器或文件创建(3 3)用)用matlabmatlab函数创建数组函数创建数组lrand/rand/randnrandn均匀均匀/正态分布随机数组正态分布随机数组leyeeye单位数组单位数组lzeroszeros全部元素都为全部元素都为0 0的数组的数组lonesones全部元素都为全部元素都为1 1的数组的数组ldiagdiag对角数组对角数组l空数组空数组 matlabmatlab允许输入数组,当一项操作允许输入数组,当一项操作无结果时,返回空数组。无结果时,返回空数组。(1 1)按址寻访)按址寻访 全下标法全下标法A(r,c)A(r,c)它由它由A A的的“r“r指定行指定行”和和“c“c指定列指定列”上的元素组成上的元素组成A(r,:)A(r,:)它由它由A A的的“r“r指定行指定行”和和“全部列全部列”上的元素组成上的元素组成A(:,c)A(:,c)它由它由A A的的“全部行全部行”和和“c“c指定列指定列”上的元素组成上的元素组成A(1:3,c),A(1A(1:3,c),A(1,33,c)c)B=11,12,13,14;21,22,23,24;31,32,33,34;B=11,12,13,14;21,22,23,24;31,32,33,34;单下标法单下标法A(:)A(:)“单下标全元素单下标全元素”寻访,由寻访,由A A的各列按自左到右的的各列按自左到右的次序,首位相接而生成次序,首位相接而生成“一维长列一维长列”数组数组A(s)A(s)“单下标单下标”寻访,生成寻访,生成“s“s指的指的”一维数组,一维数组,s s若若是是“行数组行数组”(或(或“列数组列数组”),则),则A(s)A(s)就是长就是长度相同的度相同的“行数组行数组”(或(或“列数组列数组”)逻辑标识法逻辑标识法A(L)A(L)“逻逻辑辑1 1”寻寻访访,生生成成“一一维维”列列数数组组:由由与与A A同同样样大大小小的的“逻逻辑辑数数组组”L L中中的的“1”“1”元元素素选选出出A A的的对对应应元元素素;按按“单单下下标标”次次序序排排成成长长列列组组成成数组操作技法综合数组操作技法综合l变维变维a a=1:12;1:12;b b=resh=resha apepe(a a,3,4),3,4)l抽取抽取d di ia ag g(c c):抽取主对角线元素成列向量抽取主对角线元素成列向量;d di ia ag g(d di ia ag g(c c):):抽取主对角线元素成对角阵抽取主对角线元素成对角阵l扩展扩展B B=A A,A A C C=A A;A A%要维数一致要维数一致“非数非数”和和“空空”数组数组(课本课本 3.3.3 P114)3.3.3 P114)非数非数l该非数在该非数在MATLABMATLAB中中NaNNaN或或nannan记述。记述。根据根据IEEEIEEE数学规范,数学规范,NaNNaN具有以下具有以下性质性质:lNaNNaN参与运算所得的结果也是参与运算所得的结果也是NaNNaN,具有传递性,具有传递性l非数没有非数没有“大小大小”概念,因此不能比较两个非数的大小概念,因此不能比较两个非数的大小非数的功用非数的功用l真实记述真实记述 的运算后果的运算后果 l避免可能因避免可能因 运算而造成程序执行中断运算而造成程序执行中断l在测量数据处理中,可以用来标识非正常点在测量数据处理中,可以用来标识非正常点l在数据可视化中,用来裁剪图形在数据可视化中,用来裁剪图形运算的后果。运算的后果。a a=0 0/0,0,bb=0 0*log*log(0),(0),c=inc=inf f-in inf f aa=N Na aN Nbb=N Na aN Nc c=N Na aN Nclcla ass ss(a a),),isnisna an n(a a)aansns=d do ou ub ble leaansns=1 1R=rR=ra an nd(2,5);d(2,5);R R(1,5)(1,5)=N Na aN N;R R(2,3)(2,3)=N Na aN N;LR=isnLR=isna an n(R R)ri ri,ci ci=f fin ind(d(LRLR)%结果第结果第2 2行行3 3列列,第第1 1行行5 5列元素为列元素为N Na aN N例:例:“非数非数”数组算例数组算例(非数不能用非数不能用=)a a=,bb=ones=ones(2,0),(2,0),c=c=z zeroseros(4,0,2)(4,0,2)aa=bb=E Emptmpty y m ma atrixtrix:2 2-b by y-0 0c c=E Emptmpty yaarr rra ay:y:4 4-b by y-0 0-b by y-2 2clcla ass ss(a a),),isnisnu umericmeric(a a),),isemptisempty(y(a a),),w whichhichaa,si siz ze e(a a)aansns=d do ou ub ble leaansns=1 1aansns=1 1aais isaav va ari riabable.le.aansns=0 00 0reshresha apepe(-4:5,2,5),4:5,2,5),aansns(:,2,4)(:,2,4)=aansns=-4 4-2 20 02 24 4-3 3-1 11 13 35 5aansns=-4 40 02 2-3 31 13 3例:例:“空空”数组算例数组算例3.3.数组运算和矩阵运算(课本数组运算和矩阵运算(课本3.33.43.33.4)l采用采用“数组运算数组运算”模式处理那些借助循环而反模式处理那些借助循环而反复执行的标量运算。向量化运算复执行的标量运算。向量化运算l采用向量或矩阵运算模式去执行那些传统上靠采用向量或矩阵运算模式去执行那些传统上靠多重循环标量运算完成的矩阵计算多重循环标量运算完成的矩阵计算(1 1)两个同)两个同维维同大小的(同大小的(mnmn)数)数组组A=aA=aij ij mnmn和和B=bijmn的算的算术术运算运算结结果果为为C=cC=cij ij mnmn,且且c cij=ij=a aij#ij#b bij ij(2 2)设标设标量量a a和数和数组组B=bB=bij ij mnmn进进行算行算术术运算的运算的结结果是果是C=cC=cij ij mnmn,c cij=ij=a a#b bij ij(3 3)函数)函数f f()()的数组运算规则是指的数组运算规则是指“该函数对数组的逐个该函数对数组的逐个元素起作用元素起作用”。该表述的数学含义是:对于。该表述的数学含义是:对于(mn)(mn)的数组的数组数组运算数组运算运算符运算符课本的表课本的表3.3-3 P 1143.3-3 P 114几点需要注意的:几点需要注意的:l需要避免数组运算和矩阵运算的混淆l特别注意:数组运算程序表达算符.(英文状态下的小黑点)l数组运算若在两个数组间见进行,那么这两个数组必须维数大小相同l但可准许a-.B和a+.B的形式出现,且a-B和a+B含义相同l注意左除 右除 5/10=0.5 510=2a a bba a,b b两数组必须有相同的行和列,相两数组必须有相同的行和列,相应元素相乘。应元素相乘。a*ba*b满足满足a a矩阵的行数与矩阵的行数与b b矩阵列数相等,矩阵乘矩阵列数相等,矩阵乘法法a=123;456;789;b=246;135;7910;a=123;456;789;b=246;135;7910;a.*ba*ba.*ba*bans=ans=ans=ans=281825374628182537464153055851094153055851094972908513317249729085133172例:数组与矩阵乘法例:数组与矩阵乘法表3.3-1 表表3.2-33.2-3数组化编程数组化编程假如把标量看做假如把标量看做“单件产品单件产品”,那么标量运算相,那么标量运算相当于当于“产品的单件生产产品的单件生产”,这是效率低下的生成,这是效率低下的生成组织方式。把大量的组织方式。把大量的“单件产品单件产品”组织在组织在“流水流水线线”加工,可以大大提高效率。这种思想程序中加工,可以大大提高效率。这种思想程序中的体现,就是的体现,就是“向量化编程向量化编程“。在。在MATLABMATLAB中,若中,若想达到向量化编程目的,就要尽量少地采用标量想达到向量化编程目的,就要尽量少地采用标量运算表达式,且尽可能使用数组运算表达式,且尽可能使用数组/矩阵运算指令矩阵运算指令替代原先那些替代原先那些”包含标量运算表达式的循环体包含标量运算表达式的循环体“。向量化程序不但可读性好,而且执行速度快。向量化程序不但可读性好,而且执行速度快。【例例】欧姆定律:欧姆定律:,其中,其中r,u,ir,u,i分分别别是是电电阻、阻、电压电压、电电流。流。验证实验验证实验:根据:根据电电阻阻两端施加的两端施加的电压电压,测测量量电电阻中流阻中流过过的的电电流,然后根据流,然后根据测测得的得的电压电压、电电流流计计算平算平均均电电阻阻值值。(。(测测得的得的电压电电压电流具体数据流具体数据见见程序)。程序)。(1 1)非向量化编程)非向量化编程cleclea ar rv vr=r=00.8 89 9,1 1.20,20,3 3.0 09 9,4 4.27,27,3 3.62,62,7 7.71,71,8 8.9999,7 7.9 92,2,9 9.70,70,1010.41;41;ir=ir=00.028,028,0 0.040,040,0 0.100,100,0 0.145,145,0 0.118,118,0 0.258,258,0 0.2 29999,0 0.257,257,0 0.308,308,0 0.345;345;L=lengthL=length(v vr r););f foror k k=1:1:L Lr r(k)(k)=v vr r(k)(k)/ir/ir(k);(k);enend dsr=sr=0;0;f foror k k=1:1:L Lsr=sr+rsr=sr+r(k);(k);enend drm=sr/Lrm=sr/Lrm=30.5247(2 2)向量化编程)向量化编程clearclearvr=0.89,vr=0.89,1.20,1.20,3.09,3.09,4.27,4.27,3.62,3.62,7.71,7.71,8.99,8.99,7.92,7.92,9.70,10.41;9.70,10.41;ir=0.028,ir=0.028,0.040,0.040,0.100,0.100,0.145,0.145,0.118,0.118,0.258,0.258,0.299,0.299,0.257,0.308,0.345;0.257,0.308,0.345;r=vr./irr=vr./irrm=mean(r)rm=mean(r)r=Columns 1 through 8 31.7857 30.0000 30.9000 29.4483 30.6780 29.8837 30.0669 30.8171 Columns 9 through 10 31.4935 30.1739rm=30.5247 下去可以参考书上下去可以参考书上3.3-33.3-3说明:只要知道“数组除”的含义和算符,很容易写出向量化程序。尽量克服在C C语言中养成的编程习惯,熟悉“数组运算符”。尽可能的熟悉MMA AT TLALAB B自带的程序,质量高,可读性好【例例】t=-3*pi:pi/10:3*pi;t=-3*pi:pi/10:3*pi;%y=sin(t)./t;y=sin(t)./t;subplot(1,2,1),plot(t,y),axis(-9,9,-0.5,1.2),subplot(1,2,1),plot(t,y),axis(-9,9,-0.5,1.2),xlabel(t),ylabel(y),title(xlabel(t),ylabel(y),title(残缺图形残缺图形)tt=t+(tt=t+(t=0t=0)*eps;)*eps;yy=sin(tt)./tt;yy=sin(tt)./tt;subplot(1,2,2),plot(tt,yy),axis(-9,9,-0.5,1.2)subplot(1,2,2),plot(tt,yy),axis(-9,9,-0.5,1.2)xlabel(tt),ylabel(yy),title(xlabel(tt),ylabel(yy),title(正确图形正确图形)【例例】function y=exm030303_2(x)function y=exm030303_2(x)%exm030303_2%exm030303_2L1=x=1;L1=x=1;L2=-1x&x=1;L2=-1x&x=1;L3=1x;L3=1a a=TThishis is isaan n exexa amplemplea asciiscii_ _a a=d do ou ub ble le(a a)w w=f fin ind(d(a a=a a&a a=a asciiscii_ _a a(w w)=a asciiscii_ _a a(w w)-3232chcha ar r(a asciiscii_ _a a)例例2 2:由小串构成长串:由小串构成长串b=Example“3.1.2-1”b=Example“3.1.2-1”b=Example 3.1.2-1 b=Example 3.1.2-1 ab=a(1:7),b,.ab=a(1:7),b,.ab=This is Example 3.1.2-1.ab=This is Example 3.1.2-1.例例A.A.1 1-14:14:图形上标出图名和最大值坐标图形上标出图名和最大值坐标clearclear,a=2;w=3;,a=2;w=3;t=0:0.01:10;t=0:0.01:10;y=exp(-a*t).*sin(w*t);y=exp(-a*t).*sin(w*t);y_max,i_max=max(yy_max,i_max=max(y);%);%得到函数最大值和对应得到函数最大值和对应t t的下标的下标t_text=t=,num2str(t(i_max);t_text=t=,num2str(t(i_max);y_text=y=,num2str(y_max);y_text=y=,num2str(y_max);max_text=char(maximum,t_text,y_text);%max_text=char(maximum,t_text,y_text);%排排3 3行行tit=y=exp(-,tit=y=exp(-,num2str(a),t)*sin(,num2str(w),t);num2str(a),t)*sin(,num2str(w),t);plot(t,zeros(size(t),k)plot(t,zeros(size(t),k)%坐标横轴坐标横轴y=0y=0hold onhold onplot(t,y,b)plot(t,y,b)plot(t(i_max),y_max,r.,MarkerSize,20)plot(t(i_max),y_max,r.,MarkerSize,20)text(t(i_max)+0.3,y_max+0.05,max_text)text(t(i_max)+0.3,y_max+0.05,max_text)title(tit),xlabel(t),ylabel(y),hold off title(tit),xlabel(t),ylabel(y),hold off 3 3 胞元数组胞元数组(附录附录A.2)A.2)1.1.定义定义胞元数组的基本组分是胞元,胞元在数组中以胞元数组的基本组分是胞元,胞元在数组中以下标区分,每个胞元类型、大小可以不同。下标区分,每个胞元类型、大小可以不同。2.2.胞元标识寻访和内容编址寻访的不同胞元标识寻访和内容编址寻访的不同胞元数组的胞元和胞元里内容是不同范畴的东西,胞元数组的胞元和胞元里内容是不同范畴的东西,因而寻访是不同的。因而寻访是不同的。(1 1)胞元标识)胞元标识 A A(1 1,4 4),寻访胞元元素),寻访胞元元素(2 2)胞元内容编址)胞元内容编址 A1A1,44,寻访胞元元素内容,寻访胞元元素内容3.3.胞元数组操作胞元数组操作B=cell(2)B=cell(2)%创建创建2*22*2空胞元数组空胞元数组Cstr=char(Cstr=char(这是胞元数组创建算例这是胞元数组创建算例 11););R=reshape(1:9,3,3);R=reshape(1:9,3,3);Cn=1+2i;Cn=1+2i;syms symst;t;Ssym=sin(-3*t)*exp(-t);Ssym=sin(-3*t)*exp(-t);(1 1)创建创建B1,1=Cstr;B1,2=R;B1,1=Cstr;B1,2=R;B2,1=Cn;B2,2=Ssym;B2,1=Cn;B2,2=Ssym;(2 2)胞元的援引)胞元的援引 b=B(1,2),class(b)b=B(1,2),class(b)cellcell型型(3 3)胞元内容的援引)胞元内容的援引 b=B1,2,class(b)b=B1,2,class(b)doubledouble型型4 4 构架数组构架数组(附录附录A.3)A.3)1.1.定义定义*构架数组的基本组分是构架,构架在数组中以下构架数组的基本组分是构架,构架在数组中以下标区分。标区分。*构架在划分构架在划分“域域”后才能使用,数据只能存放于后才能使用,数据只能存放于域中,域可以存放任何类型、大小的数组。域中,域可以存放任何类型、大小的数组。*域的操作域的操作:构架名构架名.域名域名*构架的访问构架的访问:构架名构架名*不同构架的同名域可以存放不同内容。不同构架的同名域可以存放不同内容。(1)(1)直接对域赋值产生单构架直接对域赋值产生单构架G G.n.na ame=me=一号房一号房;G G.v vol

    注意事项

    本文(matlab入门及数组.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开