Matlab第一章

上传人:gu****n 文档编号:243539132 上传时间:2024-09-25 格式:PPT 页数:117 大小:847.50KB
返回 下载 相关 举报
Matlab第一章_第1页
第1页 / 共117页
Matlab第一章_第2页
第2页 / 共117页
Matlab第一章_第3页
第3页 / 共117页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第二章 基础知识,本章着重介绍的,MATLAB,基础知识包括:,数据类型;,基本矩阵操作;,运算符;,字符串处理函数。,目录,2.1 数 据 类 型,2.2,基本矩阵操作,2.3 运算符和特殊符号,2.4 字符串处理函数,习 题,2.1,数 据 类 型,1,数值类型,2,逻辑类型,3,字符和字符串类型,4,结构体类型,MATLAB中定义了很多种数据类型。 在MATLAB中有15种基本数据类型,每种基本数据类型均以数组/矩阵的形式出现。,本节讨论MATLAB中主要的数据类型及其使用方法。,1,数值类型,数值类型包含,整数;,浮点数;,复数;,Inf,;,NaN,(,1,)整数类型,MATLAB,支持,1,、,2,、,4,和,8,字节的有符号整数和无符号整数。数据类型的名称、表示范围和转换函数如下表所示。,(,2,)浮点数类型,MATLAB,有单精度和双精度两种浮点数。其名称、存储空间、表示范围和转换函数如下表所示。,(,3,)复数类型,复数包含实部和虚部。在,MATLAB,中可以用,i,或者,j,来表示虚部。,(,4,),Inf,和,NaN,Inf,和,-Inf,分别表示正无穷大和负无穷,大。除法运算中除数为0或者运算结果溢,出都会导致inf或-inf的运行结果。,在MATLAB中用NaN(Not a Number),来表示一个既不是实数也不是复数的数,值,类似,0/0,inf/inf,均可产生,NaN,。,2,逻辑类型,在,MATLAB,中逻辑类型包含,true,和,false,,分别由,1,和,0,表示。在,MATLAB,中用函数,logical(),将任何非零的数值转换为,true,(即,1,),将数值,0,转换为,false,(即,0,)。,3,字符和字符串类型,在,MATLAB,中,数据类型(,char,)表示一个字符。一个,char,类型的,1,n,数组称为字符串,string,。,4,结构体类型,结构体类型是一种由若干属性(,field,)组成的,MATLAB,数组,其中的每个属性可以是任意数据类型。,下图表示了一个结构体(,Personel,),它包括,3,个属性(,Name,、,Score,和,Salary,),其中,Name,是一个字符串,,Score,是一个数值,,Salary,是一个,1,5,的向量。,(,1,)结构体数组的构造,构造一个结构体(数组)有两种方法。,利用赋值语句,通过赋值语句为结构体中的每个指定属性赋值,从而构造结构体。,比如例,2.5.,例,2.5,中的结构体可以看成是,1*1,的结构体,可以将它扩展为,n*m,的结构体数组,.,如例,2.6,值得注意的是,结构体数组中元素属性的大小不要求一致,如,salary.,Matlab,对未指定数据的属性自动赋值成空矩阵,.,如例,2.7,利用函数,struct(),在,MATLAB,中,函数,struct(),的具体用法如下:,其中,,strArray,、,field,和,val,分别表示结构体名、属性名和相应的属性值。例,2.8,(,2,)结构体数组的访问,通过结构体数组的下标引用,可以访问任意元素的所有属性,同时可以对属性进行赋值。,例,2.92.12,2.2,基本矩阵操作,2.2.1,矩阵的构造,2.2.2,矩阵大小的改变,2.2.3 矩阵下标引用,2.2.4 矩阵信息的获取,2.2.5,矩阵结构的改变,2.2.6,稀疏矩阵,在,MATLAB,中,所有的数据均以二维、三维或高维矩阵的形式存储,每个矩阵的单元可以是数值类型、逻辑类型、字符类型或者其他任何数据类型。,对于标量,可以用1,1矩阵来表示;,对于一组,n,个数据,可以用1,n,矩阵来表示;,对于多维数组,可以用多维矩阵来表示。,矩阵是,MATLAB,进行数据处理和运算的基本元素,.,在MATLAB中,用命令whos来显示数据的类型、存储空间等信息。如例,2.13,2.14,2.2.1,矩阵的构造,1,简单矩阵构造,2,特殊矩阵构造,3,向量构造,1,简单矩阵构造,最简单的方法是采用矩阵构造符“”。构造1,n,矩阵(行向量)时,可以将各元素依次放入矩阵构造符内,并且以空格或者逗号分隔;构造,m,n,矩阵时,每行如上处理,并且行与行之间用分号分隔。例如,2.152.16,下列哪条指令能够在Matlab中产生二维数组s= ( ),(A) s=1,2,3,4,5,6,7,8,9;,(B) s=1,4,7;2,5,8;3,6,9;,(C) s=1,2,3;4,5,6;7,8,9;,(D) s=1 2 3 4 5 6 7 8 9;,2,特殊矩阵构造,在,MATLAB,中还提供一些函数用来构造特殊矩阵,这些函数如下表所示。,续表,如例2.172.18,产生,4,阶全,0,方阵的命令,_,;,产生,3,阶全,1,方阵的命令为,_,。,3,向量构造,最简单的方法是采用向量构造符“:”,其常用的用法如下。,(1)a:b返回以,a,为起点,以1为步长,且所有取值在a与b之间的向量。 例,2.20,(2)a:s:b 返回以,a,为起点,以s为步长,且所有取值在a与b之间的向量。例,2.212.22,2.2.2,矩阵大小的改变,1,矩阵的合并,2,矩阵行列的删除,1,矩阵的合并,矩阵的合并就是把两个或者两个以上的矩阵连接成一个新矩阵。矩阵构造符,可用于构造矩阵,并可以作为一个矩阵合并操作符。,表达式,C,=,A B,在水平方向合并矩阵,A,和,B,;,表达式,C,=,A,;,B,在竖直方向合并矩阵,A,和,B,。,矩阵合并时要符合维数的约束,以水平方向为例,具有相同行数的两个矩阵,合并为一个新矩阵,不具有相同行数的两个矩阵,不允许合并为一个新矩阵,例2.24,除了矩阵合并符“,”,外,还可以使用矩阵合并函数。矩阵合并函数的描述和基本调用格式如下表所示。,例2.252.26,2,矩阵行列的删除,要删除矩阵的某一行或者是某一列,只需将该行或者该列赋予一个空矩阵即可。,例,2.27,2.2.3,矩阵下标引用,1访问单个元素,2线性引用元素,3,访问多个元素,本小节将介绍通过矩阵下标来存取元素值的方法,包括访问单个元素、线性引用元素和访问多个元素等。,1,访问单个元素,例2.282.29,2,线性引用元素,对于矩阵,A,,线性引用元素的格式为,A,(,k,),。通常这样的引用用于行向量或列,向量,但也可用于二维矩阵。,MATLAB,按,列,优先排列的一个长列向量格,式(线性引用元素)来存储矩阵元素。,例2.30,3,访问多个元素,操作符“:”可以用来表示矩阵的多个元素。若,A,是二维矩阵,其主要用法如下:,A(:,:) 返回矩阵,A,的所有元素。,A(i,:) 返回矩阵,A,第,i,行的所有元素。,A(i,k1:k2),返回矩阵,A,第,i,行的自,k,1,到,k,2,列的所有元素。,A(:,j),返回矩阵,A,第,j,列的所有元素。,A(k1:k2,j),返回矩阵,A,第,j,列的自,k,1,到,k,2,行的 所有元素。,若,A,是多维矩阵,也可以通过类似的方法实现对其访问。,例2.312.32,问.,在,matlab,命令窗口输入,A=1,2,3;4,5,6;,运行A(4)结果是,?,运行A(,2,3,)结果是,?,写出执行以下代码后,C,,,D,,,E,的值,A=1,2,3;4:6;7:9;,C=A;10,11,12,D=C(1:3,2 3),E=C(2,1 2),2.2.4,矩阵信息的获取,1矩阵尺寸信息,2,元素的数据类型,3矩阵的数据结构,本小节介绍如何获取矩阵的信息,包括矩阵的尺寸、元素的数据类型和矩阵的数据结构等。,1,矩阵尺寸信息,矩阵尺寸函数可以得到矩阵的形状和大小信息,这些函数如下表所示。例,2.332.34,设,x,是一维数组,,x,的倒数第,3,个元素表示为,_,2,元素的数据类型,查询元素数据类型信息的部分函数如下表所示。,3,矩阵的数据结构,判断矩阵是否为某种指定数据结构的函数如下表所示。,2.2.5,矩阵结构的改变,改变矩阵结构的函数表,在,MATLAB,中,可以用满矩阵存储方式和稀疏矩阵存储方式来存储矩阵。,MATLAB,默认的是满矩阵的存储方式,.,若一个矩阵只有少数的元素非零,称为稀疏矩阵。,如果稀疏矩阵采用满矩阵的方式来储存就会浪费很多的储存的空间,有时还减低计算的速度,MATLAB,引入了稀疏矩阵的存储方式来解决这个问题,即用矩阵非零元素及其对应的下标来表示。,2.2.6,稀疏矩阵,1稀疏矩阵的创建,2查看稀疏矩阵,3,稀疏矩阵的运算规则,1,稀疏矩阵的创建,在MATLAB中,用函数sparse()实现满矩阵到稀疏矩阵的转换。例,2.45,在,MATLAB,中用函数,full(),实现稀疏矩阵,到满矩阵的转换。,在,MATLAB,中,还可以用函数,sparse(),直接创建稀疏矩阵,其具体用法如下。,S,= sparse(,i,j,s,m,n,),,其中,,i,和,j,分别是稀疏矩阵非零元素的行和列下标,,s,为相应的非零元素的值,,m,和,n,分别是矩阵的行数和列数。例,2.46,MATLAB,还提供一些函数用于创建特殊稀疏矩阵,这些函数如下表所示。,2,查看稀疏矩阵,MATLAB,提供一些函数用于查看稀疏矩阵的信息,如下表所示。,下面的例子都是基于,MATLAB,自带的稀疏矩阵,west0479,。,3,稀疏矩阵的运算规则,在,MATLAB,中的各种命令和函数都可以用于稀疏矩阵的运算,并且遵循如下的一些约定。,(1)把矩阵变为标量或者定长向量的函数总,是给出满矩阵;,(2)对于标量或者定长向量变换到矩阵的函,数,如函数zeros()、ones()、,eye()、rand()等总是给出满矩阵;,(,3,)从矩阵到矩阵的变换函数将以原矩阵的,形式出现;,(,4,)在参与矩阵扩展的子矩阵(如,A B,;,C,D,)中,只要有一个是稀疏矩阵,那,么所得的结果也是稀疏矩阵;,(,5,)在矩阵引用中,将仍以原矩阵形式给出,结果。,写出下列指令运行结果。,A=zeros(2,4);,A(:)=1:8;,s=2 3 5;,A(s),Sa=10 20 30,A(s)=Sa,2.3,运算符和特殊符号,2.3.1,算数运算符,2.3.2,关系运算符,2.3.3,逻辑运算符,2.3.4,运算优先级,在,MATLAB,中提供了丰富的运算符,包括算数、关系和逻辑等,3,种运算符。,2.3.1,算数运算符,在,MATLAB,中,算数运算符的用法和功能如下表所示。,续表,补充说明,AB,的用法如下:,当,A,和,B,都为矩阵时,此运算无定义;,当,A,和,B,都是标量时,表示标量,A,的,B,次,幂;,当,A,是标量且,B,为矩阵时,表示标量,A,的,B,中各元素次幂;,当,A,为方阵且,B,为正整数时,表示矩阵,A,的,B,次乘积;,当,A,为方阵且,B,为负整数时,表示矩阵,A,逆,的,B,次乘积;,当,A,为可对角化的方阵且,B,为非整数时,有,如下表达式:,例2.512.55,已知,a=2:2:8, b=2:5,,下面的运算表达式中,出错的为,( ),(A) a *b,(B) a .*b,(C) a*b,(D) a-b,2.3.2,关系运算符,MATLAB,中关系运算符的用法和功能如下表所示。,值得注意的是,关系运算符只针对两个相同长度的矩阵,或其中之一是标量的情况进行运算。,对于前者,是指两个矩阵的对应元素进行比,较,返回具有相同长度的矩阵;,对于后者,是指这个标量与另一个矩阵的每元,素进行运算。,关系运算的运算结果只有0和1两种情况,其中,0表示不满足条件,1表示满足条件。例,2.56,已知A=1 2 3;4 5 0;7 8 9;B=1 0 3;1 5 0;0 1 2;写出下列各指令运行的结果。,A+B;,A.*B;,A=B ;,2.3.3,逻辑运算符,MATLAB,提供元素方式和比特方式等逻辑运算符。元素方式逻辑运算符的用法和功能如下表所示,其中例子采用如下矩阵:,元素方式逻辑运算符,& ,、, | ,和, ,与函数,and(),、,or(),和,not(),是等价的。,比特方式逻辑运算符只接受逻辑和非负整数类型的输入变量,它是针对输入变量的二进制进行逻辑运算。,比特方式逻辑运算符的用法和功能如下表所示,表中例子采用,A,= 28,和,B,= 200,,其对应的二进制分别为,11100,和,11001000,。,已知,A=0 9 6;1 3 0;B=1 4 3;1 5 0;,写出下列各指令运行的结果。,A & B,的运行结果,_,;,A,|,B,的运行结果,_,。,2.3.4,运算优先级,运算符的优先级决定表达式求值顺序,;,具有相同优先级的运算符从左到右依次进,行运算,;,不同优先级的运算符采用先进行优先高的,运算。,运算符的优先等级表,由表中可以看到,括号的优先级别最高,因此可以用括号来改变默认的优先等级。例,2.572.58,试问MATLAB表达式2*232的结果是(,),A128,B4096,C.,262144,D256,2.4,字符串处理函数,2.4.1 字符串的构造,2.4.2,字符串的比较,2.4.3 字符串的查找和替换,2.4.4 字符串与数值间的转换,MATLAB,提供了丰富的字符串操作,包括字符串的创建、合并、比较、查找以及与数值之间的转换。,2.4.1,字符串的构造,在MATLAB中,可以用一对单引号来表示字符串。例,2.59,2.4.2,字符串的比较,1,字符串比较函数,2,用关系运算符比较字符串,在,MATLAB,中提供了对字符串、字符串数组和字符子串的比较功能。,1,字符串比较函数,在MATLAB中,字符串比较函数如下表所示。 例,2.642.65,2,用关系运算符比较字符串,在,MATLAB,中,可以对字符串运用关系运算符,但要求两个字符串具有相同的长度,或者其中一个是标量。,2.4.3,字符串的查找和替换,MATLAB,提供的一些字符串查找和替换函数如下表所示。,已知变量:,A=ilovematlab,;,B=matlab,请找出:,(,1,),B,在,A,中的位置。,(,2,) 把,B,放在,A,后面,形成,C=ilovematlabmatlab,2.4.4,字符串与数值间的转换,MATLAB,提供的一些数值转换为字符串函数如下表所示。,续表,MATLAB,提供的一些字符串转换为数值函数如下表所示。,习 题,1,计算复数,3+4i,与,56i,的乘积。,2,构建结构体,Students,,属性包含,Name,、,Age,和,Email,,数据包括,Zhang,18,zhang, zhang,、,Wang,21, ,和,Li, ,,构建后读取,所有,Name,属性值,并且修改,Zhang,的,Age,属,性值为,19,。,3,用满矩阵和稀疏矩阵存储方式分别构造下述矩,阵:,4,采用向量构造符得到向量,1,5,9,41,。,5,按水平和竖直方向分别合并下述两个矩阵:,6, 分别删除第,5,题两个结果的第,2,行。,7, 分别将第,5,题两个结果的第,2,行最后,3,列的数值,改为,11 12 13,。,8, 分别查看第,5,题两个结果的各方向长度。,9, 分别判断,pi,是否为字符串和浮点数。,10,分别将第,5,题两个结果均转换为,2,9,的矩阵。,11,计算第,5,题矩阵,A,的转秩。,12,分别计算第,5,题矩阵,A,和,B,的,A,+,B,、,A,.*,B,和,A,B,。,13,判断第,5,题矩阵,A,和,B,中哪些元素值不小于,4,。,14,分别用函数,strcat(),和矩阵合并符合并如下字,符串:, The picture is ,和, very good ,。,15,创建字符串数组,其中元素分别为,Picture ,和,Pitch ,。,16,在第,14,题结果中查找字符串,e,。,17,在第,15,题结果中匹配字符串,Pi,。,18,将字符串,very good,转换为等值的整数。,19,将十进制的,50,转换为二进制的字符串。,20,将十六进制的字符串,50,转换为三进制的整,数。,单元结构,matlab,从,5.0,版本开始引入了一种崭新的数据结构,称为,单元结构,.,该结构把不同属性的数据都纳入到一个变量之下,而这个变量称为单元,.,单元结构的概念有些类似于结构体,.,所不同的是,结构体下的各子项称为成员变量,而每个成员变量都有自己的名字,.,单元变量的表示方法更类似于带有下标的矩阵和多维数组,但这些下标用大括号括起来,.,在矩阵和多维数组中,每个矩阵元素都应该有相同的属性,而单元结构则没有此要求,用户可以把各种不同的属性的数据全部归并到一个单元变量中,.,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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