matlabNo.2西电大三.ppt_第1页
matlabNo.2西电大三.ppt_第2页
matlabNo.2西电大三.ppt_第3页
matlabNo.2西电大三.ppt_第4页
matlabNo.2西电大三.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

Sept.9th2014,MatlabProgrammingLanguage,李娜E-mail:linaTelQ:281840941,电子装备结构设计教育部重点实验室KeyLaboratoryofElectronicEquipmentStructuresofMinistryofEducation,第2章MATLAB数据及运算,2.1Matlab数据2.2变量和赋值2.2.1变量的命名2.2.2赋值语句2.2.3数据的输出格式2.2.4预定义变量2.2.5内存变量的管理2.3Matlab矩阵2.3.1矩阵的建立2.3.2冒号表达式2.3.3矩阵的操作,2.1数据,矩阵是MATLAB最基本、最重要的数据对象。向量可以看成是仅有一行或一列的矩阵。标量(单个数据)可以看成是矩阵的特例。一般情况下,矩阵的每个元素必须具有相同的数据类型,在实际应用中,有时需要将不同类型的数据构成矩阵的元素,也就是结构体(Structure)和元胞(Cell)数据类型。,数据特点,2.1数据-类型,MATLAB7.3定义了15种基本的数据类型,包括整型、浮点型、字符型和逻辑型等,用户甚至可以定义自己的数据类型。,数据类型,MATLAB的变量命名规则如下:变量名区分字母的大小写。例如,“a”和“A”是不同的变量。变量名不能超过63个字符,第63个字符后的字符被忽略。变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能含有空格和标点符号(如,。%等)。关键字(如if、while等)不能作为变量名。MATLAB提供的标准函数名以及命令名必须用小写字母。,2.2.1变量的命名,MATLAB语言与其他高级语言不同,变量使用时无需事先定义,其名称就是第一次合法出现时的名称,因此使用起来很便捷。,变量命名,2.2.2赋值语句,(1)变量=表达式(2)表达式一般地,运算结果在命令窗口中显示出来。如果在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。在MATLAB语句后面可以加上注释,注释以%开头,后面是注释的内容。例2.1计算表达式的值,并将结果赋给变量x,然后显示结果在MATLAB命令窗口输入命令:x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i)%计算表达式的值,练习,2.2.3数据的输出格式,MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。在命令窗口中,默认情况下(1)当数值为整数时,数值计算的结果以整数显示;(2)当数值为实数时,以小数点后四位的精度近似显示,即以短(short)格式显示;(3)如果数值超过这一范围,则以科学技术法显示结果。,例1:a=1b=3.141678c=0.00005,设置显示格式,数据输出时用户可以用format命令设置或改变数据输出格式。format命令的格式为:format格式符注意,format命令只影响数据输出格式,而不影响数据的计算和存储。,2.2.3数据的输出格式,例:1.formatshort314.159表示为314.15903141.59表示为3.1416e+0032.formatshortepi表示为3.1416e+0003.formatratpi表示为355/113,2.2.3数据的输出格式,2.2.4预定义变量,在MATLAB工作空间中,还驻留几个由系统本身定义的变量。它们有特定的含义,在使用时,应尽量避免对这些变量重新赋值。,2.2.5内存变量的管理,1.内存变量的显示与删除who和whos这两个命令用于显示在Matlab工作空间中已经驻留的变量名清单。clear命令用于删除MATLAB工作空间中的变量。注意:(1)预定义变量不能被删除;(2)clear与clc两个命令的不同之处。,2.工作空间浏览器(1)工作空间浏览器的启动(2)工作空间浏览器的操作通常对于较大矩阵的输入,可采用数组编辑器。操作方法:1)在命令窗口向一个新变量赋空阵2)在工作空间浏览器中打开该变量3)在数组编辑器中填写元素值,2.2.5内存变量的管理,3.内存变量文件利用MAT文件(.mat)可以把当前MATLAB工作空间中的一些有用变量长久地保留下来。MAT文件是MATLAB保存数据的一种标准格式二进制文件,扩展名一定是.matMAT文件的生成和装入由save和load命令来完成。常用格式为:save文件名变量名表-append-asciiload文件名变量名表-ascii假定系统存在amD两个变量,可以将其存放到mydata.matsavemydataamDloadmydataamDsaved:lxmmydataamDloadd:lxmmydataamD,2.2.5内存变量的管理,2.3Matlab矩阵,Matlab中的数组可以说是无处不在,任何变量都是以数组型式存储和运算的,在Matlab运算中,经常要用到标量、向量、矩阵和数组,关于名称的定义如下:空数组(emptyarray):没有元素的数组;标量(scalar):指11的矩阵,即为只含一个数的矩阵;向量(vector):指1n或n1的矩阵,即只有一行或者一列的矩阵;矩阵(matrix):是一个矩形的mn数组,即二维数组;数组(array):指多维数组mnk,其中矩阵和向量都是数组的特例。,2.3.1矩阵的建立,MATLAB中矩阵的创建应遵循以下基本常规:矩阵元素应用方括号()括住每行内的元素间用逗号(,)或空格隔开行与行之间用分号(;)或回车键隔开;元素可以是数值或表达式。,(一)直接输入法,将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。例如A=123;456;789也可以用回车键代替分号。,2.3.1矩阵的建立,MATLAB提供对复数的操作与管理功能,虚数单位用i或j表示,例如:6+5*i与6+5*j表示同一个复数。复数的产生可以有几种方式:z=a+b*i或z=a+b*jz=a+bi或z=a+bj(当b为常数时)z=r*exp(i*theta)z=complex(a,b)复数矩阵还可以采用另一种输入方式R=1,2,3;4,5,6;Q=2,3,4;7,8,9;z=R+i*Q,2.3.1矩阵的建立,(二)利用M文件建立矩阵,对于比较大且比较复杂的矩阵,可以专门建立一个M文件。例2.2利用M文件建立MYMAT矩阵。(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵.(2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。(3)输入文件名,运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。,2.3.1矩阵的建立,(三)建立大矩阵,大矩阵可由方括号中的小矩阵建立起来。例如:A=123;456;789;C=A,eye(size(A);ones(size(A),A,2.3.1矩阵的建立,2.3.2冒号表达式,冒号表达式的一般格式:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。冒号表达式可产生一个由e1开始到e3结束,以步长e2自增的行向量。在冒号表达式中,如果省略e2不写,则步长为1。当e2省略或e20,e1e3;e2A(1,1)=cell1;A(1,2)=12;34;A(2,1)=12,matlab;A(2,2)=0:1:5(3)由各元胞内容创建A1,1=cell1;A1,2=12;34;A2,1=12,matlab;A2,2=0:1:5,2.6结构体和元胞数组,(4)使用cell函数创建cell函数创建元胞数组的语法格式:A=cell(m,n)%创建mn元胞数组例:使用cell函数创建元胞数组。A=cell(2,2)%创建空的元胞数组A1,1=cell1,2.6结构体和元胞数组,2.元胞数组的操作(1)用取元胞数组的元素内容s=C2,1%全下标方式s=C2%单下标方式(2)用()取元胞数组的元素n=C(2,1)%全下标方式n=1x4double,2.6结构体和元胞数组,2结构体,MATLAB通过使用结构(structure)数据类型把一组不同类型的数据同时又是在逻辑上相关的数据组成一个有机的整体,以便于管理和引用。结构体中的元素可以是不同的数据类型,它能将一组不同属性的数据纳入到一个统一点变量名下进行管理。建立一个结构矩阵可采用给结构成员赋值得办法。,2.6结构体和元胞数组,2.创建结构体(1)直接创建直接使用赋值语句创建结构体,用“结构体名.字段名”的格式赋值。例:直接创建结构数组存放图形对象,结构体ps的结构如图所示,程序分析,2.6结构体和元胞数组,(2)利用struct函数创建struct(field1,值1,filed2,值2,)%创建结构体将值赋给各字段上图中的ps(1)使用该函数创建的命令为:ps(1)=struct(name,曲线,color,red,position,0,0,300,300),2.6结构体和元胞数组,2.获取结构体内部数据(1)使用“.”符号获取Ps(1).positionPs(1).position.(1,3)(2)用getfield函数获取getfield(A,A_index,fieldname,field_index)getfield(ps,1,position)getfield(ps,1,position,3)(3)使用fieldnames函数获取结构体的所有字段fieldnames(array)%获取结构体的所有字段(4)使用“”合并相同字段的数据X=,2.6结构体和元胞数组,3.结构体的操作函数(1)删除结构体的字段rmfield(A,fieldname)%删除字段(2)修改结构体的数据setfield(A,A_index,fieldname,field_index,值)setfield(ps,1,color,green)(3)增加结构体的字段ps(1).length=700,2.6结构体和元胞数组,2.7数组的信息获取,1.数组的尺寸2.数组的检测函数以“is”开头,函数返回的结果为逻辑型,如果检测符合条件则返回1,不符合条件就返回0。,all若向量的所有元素非零,则结果为1.any向量中任何一个元素非零,都给出结果1.exist检查变量在工作空间是否存在,若存在,则结果为1,否则为0。find找出向量或矩阵中非零元素的位置。isempty若被查变量是空阵,则结果为1。sglobal若被查变量是全局变量,则结果为1。isinf若元素是+-inf,则结果矩阵相应位置元素取1,否则取0isnan若元素是nan,则结果矩阵相应位置元素取1,否则取0isfinite若元素值大小有限,则结果矩阵相应位置元素取1,否则取0issparse若变量是稀疏矩阵,则结果矩阵相应位置元素取1,否则取0isstr若变量是字符串,则结果矩阵相应位置元素取1,否则取0 xor若两矩阵对应元素同为0或非0,则结果矩阵相应位置元素取0,否则取1,2.7数组的信息获取,练习,产生对角线上全1,其余为0的2行3列矩阵的命令是_。A.ones(2,3)B.ones(3,2)C.eye(2,3)D.eye(3,2),答案:C,练习,已知a=0:4,b=1:5,下面的运算表达式出错的为_。A.a+bB.a.*bC.a*bD.a*b,答案:D,练习,有一个2行2列的元胞数组c,则c(2)指的是_。A.第1行第2列的元素内容B.第2行第1列的元素内容C.第1行第2列的元素D.第2行第1列的元素,答案:D,练习,已知x=0:10,则x有_个元素。A.10B.1

温馨提示

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

评论

0/150

提交评论