第二章MATLAB 数据及其运算

上传人:博****1 文档编号:591895038 上传时间:2024-09-18 格式:PPT 页数:60 大小:605.50KB
返回 下载 相关 举报
第二章MATLAB 数据及其运算_第1页
第1页 / 共60页
第二章MATLAB 数据及其运算_第2页
第2页 / 共60页
第二章MATLAB 数据及其运算_第3页
第3页 / 共60页
第二章MATLAB 数据及其运算_第4页
第4页 / 共60页
第二章MATLAB 数据及其运算_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《第二章MATLAB 数据及其运算》由会员分享,可在线阅读,更多相关《第二章MATLAB 数据及其运算(60页珍藏版)》请在金锄头文库上搜索。

1、第二章 MATLAB 数据及其运算1主要内容uMATLAB MATLAB 数据的特点数据的特点u变量及其操作变量及其操作uMATLABMATLAB矩阵的表示矩阵的表示uMATLABMATLAB数据的运算数据的运算u字符串字符串u结构数据和单元数据结构数据和单元数据2MATLAB数据的特点u矩阵是矩阵是MATLAB最基本、最重要的数据对象最基本、最重要的数据对象MATLAB的大部分运算或命令都是在矩阵运算的意义的大部分运算或命令都是在矩阵运算的意义下执行的下执行的u问题:问题:单个数据如何用矩阵表示?单个数据如何用矩阵表示?x=51*1矩阵矩阵向量如何用矩阵表示?向量如何用矩阵表示?a=1,2,

2、3行向量:行向量:1*n矩阵矩阵;列向量:列向量:n * 1矩阵矩阵u单个数据和向量都可以作为矩阵的特例来处理。单个数据和向量都可以作为矩阵的特例来处理。3MATLAB数据的特点(续)u数据类型数据类型数值数据数值数据双精度型(双精度型(double)、单精度数、单精度数(single)、带符号整数、带符号整数(int8, int16, int32,int64)和无符号整数和无符号整数(uint8, uint8, uint16, uint32,uint64)字符数据字符数据结构体结构体(Structure)和单元和单元(Cell)数据类型数据类型逻辑型数据逻辑型数据以数值以数值1(非零非零)表

3、示表示“真真”,以数值,以数值0表示表示“假假”4主要内容uMATLAB MATLAB 数据的特点数据的特点u变量及其操作变量及其操作uMATLABMATLAB矩阵的表示矩阵的表示uMATLABMATLAB数据的运算数据的运算u字符串字符串u结构数据和单元数据结构数据和单元数据5MATLAB变量及其操作u什么是变量?什么是变量?变量是一个可以存储值的字母或名称,可使用变量表示程序所需的任何信息。变量是一个可以存储值的字母或名称,可使用变量表示程序所需的任何信息。故名思意,变化的量。变量可以随着程序的运行而改变其表示的值。故名思意,变化的量。变量可以随着程序的运行而改变其表示的值。代表一个或若干

4、个内存单元,为了对变量所对应的存储单元进行访问,需要给变代表一个或若干个内存单元,为了对变量所对应的存储单元进行访问,需要给变量命名。量命名。u变量命名变量命名变量名第一个字符必须是英文字母变量名第一个字符必须是英文字母,后接,后接字母、数字或下划线字母、数字或下划线的字符序的字符序列列变量名变量名不能包含空格、标点、运算符不能包含空格、标点、运算符最多最多63个字符,超过部分忽略个字符,超过部分忽略变量名区分字母的变量名区分字母的大小写(对大小写敏感)大小写(对大小写敏感)。u问题:变量名与标准函数名、命令的命名有什么区别?问题:变量名与标准函数名、命令的命名有什么区别?MATLAB提供的标

5、准函数名以及命令必须用提供的标准函数名以及命令必须用小写小写。6变量赋值u两种形式两种形式(1) 变量变量=表达式表达式 将右边表达式的值赋给变量将右边表达式的值赋给变量 (2) 表达式表达式将表达式的值赋给预定义变量将表达式的值赋给预定义变量ansu例例 计算表达式计算表达式 的值,并显示计算结果。的值,并显示计算结果。 x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i) %计算表达式的值计算表达式的值其中其中pi和和i都是都是MATLAB预先定义的变量,分别代表代表圆周率预先定义的变量,分别代表代表圆周率和和虚数单位。虚数单位。7预定义变量u预定义变量预定义变量由系统本

6、身定义的变量由系统本身定义的变量每当每当MATLAB启动,预定义变量就会产生启动,预定义变量就会产生预定义变量有特殊含义和用途预定义变量有特殊含义和用途uans 计算结果的默认赋值变量计算结果的默认赋值变量eps 正的极小值正的极小值=2.2204e-016,通常称机器零,通常称机器零 i和和 j 虚数单位虚数单位pi 圆周率圆周率的近似值的近似值 Inf,inf 值,无穷大值,无穷大 (1/0 ) NaN,nan 不定值不定值 (0/0 ) u预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值值 8内存变量的管理u内存变

7、量的管理内存变量的管理工作空间窗口工作空间窗口专用于内存变量的管理专用于内存变量的管理u回忆回忆内存变量如何显示?内存变量如何显示?在工作空间窗口中可以显示所有内存变量的属性。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击当选中某些变量后,再单击Delete按钮,就能删除这些变量。当选中按钮,就能删除这些变量。当选中某些变量后,再单击某些变量后,再单击Open Selection按钮,将进入变量编辑器。通过按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。体元素。who和

8、和whos这两个命令用于显示在这两个命令用于显示在MATLAB工作空间中已经驻留工作空间中已经驻留的变量名清单。的变量名清单。who命令只显示出驻留变量的名称命令只显示出驻留变量的名称whos在给出变量名的同时,还给出它们的大小、所占字节数及数据在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。类型等信息。9内存变量的管理(续)u内存变量的删除内存变量的删除clear命令用于删除命令用于删除MATLAB工作空间中的变量。工作空间中的变量。u问题:问题: clear命令能删除预定义变量吗?命令能删除预定义变量吗?10内存变量的管理(续)u内存变量文件内存变量文件MAT文件(扩展名

9、是文件(扩展名是.mat)当退出当退出MATLAB后,所有的变量定义将消失后,所有的变量定义将消失 利用利用MAT文件可以把当前文件可以把当前MATLAB工作空间中的一些工作空间中的一些有用变量有用变量长久地长久地保留下来。保留下来。uMAT文件的文件的生成和装入生成和装入由由save和和load命令来完成。常用格式为:命令来完成。常用格式为:save 文件名文件名 变量名表变量名表 -append-asciiload 文件名文件名 变量名表变量名表 -ascii文件名可以带路径,但不需带扩展名文件名可以带路径,但不需带扩展名.mat,命令隐含一定是对,命令隐含一定是对.mat文件文件进行操作

10、。进行操作。变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。以空格分隔。当变量名表省略时,保存或装入全部变量。-ascii选项使文件以选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式格式处理,省略该选项时文件将以二进制格式处理。处理。save命令中的命令中的-append选项将变量追加到选项将变量追加到MAT文件中。文件中。11数据的输出格式uMATLAB用十进制数表示一个常数,具体可采用两种表用十进制数表示一个常数,具体可采用两种表示方法示方法日常记数法

11、日常记数法:3.14159科学记数法科学记数法:1.78029e2u在一般情况下,在一般情况下,MATLAB内部每一个数据元素都是用双内部每一个数据元素都是用双精度数来表示和存储的。精度数来表示和存储的。u数据输出时用户可以用数据输出时用户可以用format命令设置或改变数据输出命令设置或改变数据输出格式。格式。uformat命令的格式为:命令的格式为: format 格式符格式符其中格式符决定数据的输出格式其中格式符决定数据的输出格式12数据的输出格式(续)u举例举例u注意注意:Format命令只影响数据的输出格式,不影响数据的计算命令只影响数据的输出格式,不影响数据的计算和存储。和存储。1

12、3主要内容uMATLAB MATLAB 数据的特点数据的特点u变量及其操作变量及其操作uMATLABMATLAB矩阵的表示矩阵的表示uMATLABMATLAB数据的运算数据的运算u字符串字符串u结构数据和单元数据结构数据和单元数据14矩阵的建立u方法一:直接输入法方法一:直接输入法最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用法如下:将矩阵的元素用方括号方括号括起来,按矩阵行的顺序输入各括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用元素,同一行的各元素之间用空格或逗号空格或逗号分隔,不同行的元素之分

13、隔,不同行的元素之间用间用分号或回车符分号或回车符分隔。分隔。u三要素三要素:矩阵标识符矩阵标识符: 元素分隔符元素分隔符: 逗号逗号” ,”或空格或空格行间分隔符行间分隔符:分号分号”;”或回车符或回车符注意注意:所有标点符号都是英文状态符号所有标点符号都是英文状态符号15矩阵的建立(续)u方法二:利用方法二:利用M文件建立矩阵文件建立矩阵对于对于比较大且比较复杂比较大且比较复杂的矩阵,可以为它专门建立一个的矩阵,可以为它专门建立一个M文件文件。u什么是什么是M文件?文件?保存一段代码的文件,扩展名为保存一段代码的文件,扩展名为.mu例:利用例:利用M文件建立文件建立MYMAT矩阵矩阵(1)

14、 启动有关编辑程序或启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵:文本编辑器,并输入待建矩阵:MYMAT=101,102,103,104,105,106,107,108,109; 201,202,203,204,205,206,207,208,209; 301,302,303,304,305,306,307,308,309; (2) 把输入的内容以纯文本方式存盘把输入的内容以纯文本方式存盘(设文件名为设文件名为mymatrix.m)。(3) 在在MATLAB命令窗口中输入命令窗口中输入mymatrix,即运行该,即运行该M文件,就会自动文件,就会自动建立一个名为建立一个名为MYMA

15、T的矩阵,可供以后使用。的矩阵,可供以后使用。16矩阵的建立(续)u建立大矩阵建立大矩阵大矩阵可由方括号中的小矩阵或向量建立起来。大矩阵可由方括号中的小矩阵或向量建立起来。u例例 A=1 2 3;4 5 6;7 8 9;C=A,eye(size(A); ones(3),Asize(A):返回矩阵返回矩阵A的行数和列数的行数和列数eye(n):返回返回n* n单位矩阵单位矩阵ones(n):返回返回n* n全全1矩阵矩阵u比较:比较:size(A)length(A):返回行数和列数中的最大者返回行数和列数中的最大者ndims(A):返回返回A的维数的维数17生成行向量u两种方法:两种方法:方法一

16、:利用冒号表达式方法一:利用冒号表达式 e1:e2:e3 其中其中e1为初始值,为初始值,e2为步长,为步长,e3为终止值为终止值方法二:利用方法二:利用linspace函数函数 linspace(a,b,n) a和和b是生成向量的第一个和最后一个元素,是生成向量的第一个和最后一个元素,n是元素总数是元素总数u显然,显然,linspace(a,b,n) =a:(b-a)/(n-1):b18矩阵元素的引用u方法一:通过方法一:通过下标(下标(subscript)引用矩阵的元素引用矩阵的元素例如例如 A(3,2)=200u方法二:采用矩阵元素的方法二:采用矩阵元素的序号序号(index)来引用矩阵

17、元素。来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,中,矩阵元素按列存储矩阵元素按列存储,先第一列,再第二列,依次,先第一列,再第二列,依次类推。类推。例如:例如:A=1,2,3;4,5,6; A(3) ans =2 显然,序号显然,序号(Index)与下标与下标(Subscript )是一一对应的,其是一一对应的,其相互转换关系可利用相互转换关系可利用sub2ind和和ind2sub函数求得。函数求得。19矩阵拆分u方法一:方法一:利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵回忆回忆冒号表达式冒号表达式冒号

18、表达式是冒号表达式是Matlab中很有用的表达式,在中很有用的表达式,在向量生成向量生成,子矩阵提取(矩阵拆子矩阵提取(矩阵拆分)分)等很多方面都是特别重要的。等很多方面都是特别重要的。矩矩阵拆分的拆分的规则 A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示取表示取A矩阵第矩阵第i行行的全部元素;的全部元素;A(i,j)表示取表示取A矩阵第矩阵第i行、第行、第j列的元素列的元素 A(i:i+m,:)表示取表示取A矩阵第矩阵第ii+m行的全部元素;行的全部元素;A(:,k:k+m)表表示取示取A矩阵第矩阵第kk+m列的全部元素,列的全部元素,A(i:i+m,k

19、:k+m)表示取表示取A矩阵第矩阵第ii+m行内,并在第行内,并在第kk+m列中的所有元素。列中的所有元素。 A(:)将矩阵将矩阵A每一列元素堆叠起来,成为一个列向量,而这也是每一列元素堆叠起来,成为一个列向量,而这也是MATLAB变量的变量的内部储存方式内部储存方式。 总结:若总结:若i为:,则表示要提取所有的行,若为:,则表示要提取所有的行,若j为:,则表示为:,则表示要提取所有的列。要提取所有的列。 20矩阵拆分(续)u方法二:方法二:利用一般向量和利用一般向量和end运算符来表示矩阵下标,从运算符来表示矩阵下标,从而获得子矩阵。而获得子矩阵。end表示最后一行(或列,取决于其位置)表示

20、最后一行(或列,取决于其位置)u例:例:A(end,:)A(1,4,3:end)21矩阵拆分(续)u利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素在在MATLAB中,定义中,定义为空矩阵。给变量为空矩阵。给变量X赋空矩阵的语句为赋空矩阵的语句为X=。X=与与clear X的不同的不同clear是将是将X从工作空间中删除从工作空间中删除空矩阵则存在于工作空间中,只是维数为空矩阵则存在于工作空间中,只是维数为0例:例:A(:,2,4)=u将某些元素从矩阵中删除,采用将其置为空矩阵的方法是将某些元素从矩阵中删除,采用将其置为空矩阵的方法是一种有效的方法一种有效的方法u注意:将矩阵某元素附空值与赋零

21、值完全不同注意:将矩阵某元素附空值与赋零值完全不同 A(1,2) = 出错!出错! A(1,2) = 0 可以可以22主要内容uMATLAB MATLAB 数据的特点数据的特点u变量及其操作变量及其操作uMATLABMATLAB矩阵的表示矩阵的表示uMATLABMATLAB数据的运算数据的运算u字符串字符串u结构数据和单元数据结构数据和单元数据23MATLAB数据的运算u算术运算算术运算基本算术运算基本算术运算(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)点运算点运算.*、./、.和和.数学函数数学函数abs、fix、 floor、 round、.u关系运算关系运算

22、(小于小于)、(大于大于)、=(大于或等于大于或等于)、=(等于等于)、=(不等于不等于)u逻辑运算逻辑运算&(与与)、|(或或)和和(非非)24算术运算u矩阵加减运算矩阵加减运算u假定有两个矩阵假定有两个矩阵A和和B,则可以由,则可以由A+B和和A-B实现矩阵的加减运算。实现矩阵的加减运算。u运算规则是:若运算规则是:若A和和B矩阵的维数相同,则可以执行矩阵的加减运算,矩阵的维数相同,则可以执行矩阵的加减运算,A和和B矩阵的相应元素相加减。如果矩阵的相应元素相加减。如果A与与B的维数不相同,则的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。将给出错误信息,提示用户两

23、个矩阵的维数不匹配。例例1 a=1 2 3;2 3 4; 3 4 5; b=1 1 1;2 2 2;3 3 3; c=a+bu标量与标量与矩阵加减运算矩阵加减运算例例2 a=1 2 3;2 3 4; 3 4 5; x=a+125算术运算(续)u矩阵乘法矩阵乘法u假定有两个矩阵假定有两个矩阵A和和B,若,若A为为mn矩阵,矩阵,B为为np矩阵,矩阵,则则C=A*B为为mp矩阵。矩阵。u例:例:A=1,2,3;4,5,6; B=1,2;3,0;7,4; C=A*B26算术运算(续)u矩阵除法矩阵除法u两种矩阵除法运算:两种矩阵除法运算:和和/,分别表示,分别表示左除和右除左除和右除。AB等效于等效

24、于A的逆左乘的逆左乘B矩阵矩阵,也就是,也就是inv(A)*BB/A等效于等效于A矩阵的逆右乘矩阵的逆右乘B矩阵矩阵,也就是,也就是B*inv(A)u对于含有标量的运算,两种除法运算的结果相同。如,设对于含有标量的运算,两种除法运算的结果相同。如,设a=10.5,25,则,则a/5=5a=2.1000 5.0000。u对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。关系。对于矩阵运算,一般对于矩阵运算,一般ABB/A。u例例 a=1 2 3;4 2 6; 7 4 9; b=4 3 2;7 5 1;12 7 92; c

25、1=ab c2=a/b27算术运算(续)u矩阵的乘方矩阵的乘方 一个矩阵的乘方运算可以表示成一个矩阵的乘方运算可以表示成Ax,要求,要求A为方阵为方阵,x为标量。为标量。例:例:A=1,2,3;4,5,6;7,8,9; A2u矩阵的开方矩阵的开方例:例:A0.128算术运算(续)u点运算点运算u什么叫点运算?什么叫点运算?点运算是一种特殊的运算,因为其运算符是在有关算术点运算是一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。运算符前面加点,所以叫点运算。u点运算符有点运算符有.*、./、.和和.。u问题:矩阵点运算与前面讲述矩阵的基本运算有什么不同问题:矩阵点运算与前面讲

26、述矩阵的基本运算有什么不同?点运算是指它们的点运算是指它们的对应元素进行相关运算对应元素进行相关运算,要求两矩阵,要求两矩阵的维数相同的维数相同29算术运算(续)u设设A与与B时同维同大小的矩阵时同维同大小的矩阵问题一:问题一: A.*B与与A*B的值是否相等?的值是否相等? A=1,2,3;4,5,6;7,8,9; B=-1,0,1;1,-1,0;0,1,1; C1=A*B C2=A.*B答一:不同答一:不同问题二:问题二: A./B与与B. A的值是否相等?的值是否相等? C3=A./ B C4= B.A答二答二: 相同相同30算术运算(续)uMATLAB常常用数学用数学函数函数31作业二

27、用于取整的函数有fix、floor、ceil、round,请说明他们的区别? rem与mod函数的区别呢?32关系运算uMATLAB提供了提供了6种关系运算符:种关系运算符:(小于小于)、(大于大于)、=(大于或等于大于或等于)、=(等于等于)、=(不等于不等于)。它们的含义不难理解,但。它们的含义不难理解,但要要注意其书写方法与数学中的不等式符号不尽相同注意其书写方法与数学中的不等式符号不尽相同。u关系运算符的运算法则为:关系运算符的运算法则为:当两个比较量是标量时当两个比较量是标量时,直接比较两数的大小。若关系成立,关,直接比较两数的大小。若关系成立,关系表达式结果为系表达式结果为1,否则

28、为,否则为0。当参与比较的量是两个维数相同的矩阵时当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由素由0或或1组成。组成。当参与比较的一个是标量,而另一个是矩阵时当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结的每一个元素按标量关系运算规则逐个比较,并给出元素

29、比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由的元素由0或或1组成。组成。33关系运算(续)u例例 建立建立5阶方阵阶方阵A,判断,判断A的元素是否能被的元素是否能被3整除。整除。A =24,35,13,22,63;23,39,47,80,80; .90,41,80,29,10;45,57,85,62,21;37,19,31,88,76 P=rem(A,3)=0 其中,其中,rem(A,3)是矩阵是矩阵A的每个元素除以的每个元素除以3的余数矩阵。此的余数矩阵。此时,时,0被扩展为与被扩展为与A同维数的零矩阵,同维数

30、的零矩阵,P是进行等于是进行等于(=)比比较的结果矩阵。较的结果矩阵。34逻辑运算uMATLAB提供了提供了3种逻辑运算符:种逻辑运算符:&(与与)、|(或或)和和(非非)。u 逻辑运算的运算法则为:逻辑运算的运算法则为:在逻辑运算中,确认非零元素为真,用在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用表示,零元素为假,用0表示。表示。 在逻辑操作中,所有输入元素的非零值都当作在逻辑操作中,所有输入元素的非零值都当作1处理处理,例如:,例如: x=23 -5 ;0 0.001; x ans=0 0 1 0设参与逻辑运算的是设参与逻辑运算的是两个标量两个标量a和和b,那么,那么, a&b

31、 a,b全为非零时,运算结果为全为非零时,运算结果为1,否则为,否则为0。 a|b a,b中只要有一个非零,运算结果为中只要有一个非零,运算结果为1。 a 当当a是零时,运算结果为是零时,运算结果为1;当;当a非零时,运算结果为非零时,运算结果为0 35逻辑运算(续)u若参与逻辑运算的是若参与逻辑运算的是两个同维矩阵两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或或0组成。组成。例:例:a=1 2 3; 4 5 6; b=-1

32、0 0; 0 0.5 0; a&b a|b bu若参与逻辑运算的若参与逻辑运算的一个是标量,一个是矩阵一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或或0组成组成u在算术、关系、逻辑运算中,在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。算术运算优先级最高,逻辑运算优先级最低。例例 A=-3:3; L1=A L2=A-2&A0) L4=A0问题问题如何解释如何解释L3与与L4的运算结果?的运算

33、结果? 36逻辑运算(续)u常用的关系与逻辑运算函数常用的关系与逻辑运算函数u例例 建立矩阵建立矩阵A,然后找出在,然后找出在10,20区间的元素的位置区间的元素的位置 (1) 建立矩阵建立矩阵A。 A=4,15,-45,10,6;56,0,17,-45,0 (2) 找出找出10,20区间元素的位置。区间元素的位置。 find(A=10 & A=a&ch aa = 1x5 double 2x1 cell 2x1 double u上述只显示数据的结构,如果要显示单元矩阵内容利用上述只显示数据的结构,如果要显示单元矩阵内容利用celldisp celldisp(a)a1,1 = 1 2 3 4 5

34、a2,1 = 1.0000 + 1.0000i 0 + 4.0000ia1,21 =中国 a1,22 = yunnana2,2 = 51单元数据(续)ucellplot能用图形形象化地表示单元矩阵的内容。能用图形形象化地表示单元矩阵的内容。 cellplot(a)52单元数据(续)u关于单元的函数关于单元的函数函数名函数名 功能描述功能描述cell 单元数组生成单元数组生成celldisp 显示单元数组内容显示单元数组内容 iscell 如果是单元数组则返回真如果是单元数组则返回真num2cell 将数值数组转换为单元数组将数值数组转换为单元数组cellplot 单元数组内容的图形显示单元数组

35、内容的图形显示struct2cell 将结构数组转换为单元数组将结构数组转换为单元数组cell2struct 单元数组转换成结构数组单元数组转换成结构数组53结构数据u结构数据与单元数据结构数据与单元数据相同点:概念类似,都是把不同属性的数据放在一个变量中。相同点:概念类似,都是把不同属性的数据放在一个变量中。不同点:不同点:单元矩阵的单元矩阵的各个元素就是不同类型的数据各个元素就是不同类型的数据,用带有大括号下标的形,用带有大括号下标的形式引用单元矩阵元素式引用单元矩阵元素结构变量的结构变量的各个元素下有成员各个元素下有成员,每个成员都有自己的名字,对成员,每个成员都有自己的名字,对成员的引

36、用是:结构变量名的引用是:结构变量名.成员名成员名u结构矩阵的建立结构矩阵的建立方法一:给结构成员赋值。方法一:给结构成员赋值。具体格式为:结构矩阵名具体格式为:结构矩阵名.成员名成员名=表达式表达式其中表达式应理解为矩阵表达式。其中表达式应理解为矩阵表达式。54结构数据(续)u例例:建立温室数据(包括温室名、容积、温度、湿度等)建立温室数据(包括温室名、容积、温度、湿度等)green_house.name=一号房一号房;% 创建温室名字段创建温室名字段 green_house.volume=2000立方米立方米; % 创建温室容量字段创建温室容量字段 green_house.paramete

37、r.temperature=31.2 30.4 31.6 28.7 29.7 31.1 30.9 29.6; % 创建温室温度字段创建温室温度字段green_house.parameter.humidity=62.1 59.5 57.7 61.5 62.0 61.9 59.2 57.5; % 创建温室湿度字段创建温室湿度字段 u方法二:使用方法二:使用struct函数创建结构矩阵函数创建结构矩阵s = sturct(field1,values1,field2,values2,); 55结构数据(续)u结构数据的引用结构数据的引用ugreen_house%引用结构矩阵(只显示结构矩阵的大小参数和

38、成员名)引用结构矩阵(只显示结构矩阵的大小参数和成员名) green_house = name: 一号房一号房 volume: 2000立方米立方米 parameter: 1x1 struct ugreen_house.parameter %引用结构矩阵元素(显示成员名)引用结构矩阵元素(显示成员名) ans = temperature: 2x4 double humidity: 2x4 double ugreen_house.parameter.temperature %引用结构矩阵元素的成员(显示值)引用结构矩阵元素的成员(显示值) ans = 31.2000 30.4000 31.600

39、0 28.7000 29.7000 31.1000 30.9000 29.6000 56结构数据(续)u增加结构的成员增加结构的成员例如要给结构矩阵例如要给结构矩阵a增加一个成员增加一个成员x4,可给,可给a中任意一中任意一个元素增加成员个元素增加成员x4:a(1).x4=410075;但其他成员均为空矩阵,可以使用赋值语句给它赋确但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。定的值。u删除结构的成员删除结构的成员可以使用可以使用rmfield函数来完成。函数来完成。例如,删除成员例如,删除成员x4:a=rmfield(a,x4)57结构数据(续)u关于结构的函数关于结构的函数u函数名

40、函数名 功能描述功能描述fieldnames 获得结构成员名获得结构成员名rmfield 删除结构成员删除结构成员getfield 获得结构成员的内容获得结构成员的内容setfield 设置结构成员的内容设置结构成员的内容isfield 如果成员属于结构则返回真如果成员属于结构则返回真struct 生成结构数组生成结构数组isstruct 如果是结构则返回真如果是结构则返回真struct2cell 结构到单元数据的转换结构到单元数据的转换58内容回顾uMATLAB MATLAB 数据的特点数据的特点u变量及其操作变量及其操作uMATLABMATLAB矩阵的表示矩阵的表示uMATLABMATLA

41、B数据的运算数据的运算u字符串字符串u结构数据和单元数据结构数据和单元数据59u目的和要求:目的和要求:掌握掌握MATLAB数据的特点数据的特点掌握掌握MATLAB变量的命名、常用的预定义变量变量的命名、常用的预定义变量;了解内存变量的显示;了解内存变量的显示与删除、内存变量文件、数据的输出格式与删除、内存变量文件、数据的输出格式掌握矩阵的建立方法、矩阵的拆分、矩阵元素的引用掌握矩阵的建立方法、矩阵的拆分、矩阵元素的引用理解理解MATLAB的基本算术运算;的基本算术运算;掌握基本算术运算与点运算的区别掌握基本算术运算与点运算的区别;理解理解MATLAB常用的数学函数;了解基本的关系运算和逻辑运算的运常用的数学函数;了解基本的关系运算和逻辑运算的运算法则算法则理解字符串与数值数据的区别,熟悉字符串的常用函数理解字符串与数值数据的区别,熟悉字符串的常用函数理解结构矩阵和单元矩阵的建立和引用,理解结构矩阵和单元矩阵的建立和引用,掌握两者的区别掌握两者的区别u重点:重点:MATLAB变量的操作、矩阵的操作变量的操作、矩阵的操作u难点:难点:矩阵的拆分操作矩阵的拆分操作结构数据和单元数据的理解结构数据和单元数据的理解内容回顾(续)60

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号