书签 分享 收藏 举报 版权申诉 / 44
上传文档赚钱

类型Matlab-LEC2-Matlab数据类型课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5101424
  • 上传时间:2023-02-11
  • 格式:PPT
  • 页数:44
  • 大小:299.09KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Matlab-LEC2-Matlab数据类型课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Matlab LEC2 数据类型 课件
    资源描述:

    1、MATLAB MATLAB 应用应用主讲:苏菡主讲:苏菡第2章 数据类型 常数和变量 数组和矩阵 字符串 多维数组 结构 单元数组 函数句柄常数常数常数返回值返回值ans默认变量名,保存最近的结果。如果不给表达式指定一个输出变量,默认变量名,保存最近的结果。如果不给表达式指定一个输出变量,MATLAB会自动将结果保存到会自动将结果保存到ans变量中变量中 eps浮点相对精度。是浮点相对精度。是MATLAB用于计算的容限用于计算的容限 realmax计算机可以表示的最大浮点数计算机可以表示的最大浮点数 realmin计算机可以表示的最小浮点数计算机可以表示的最小浮点数 pi圆周率圆周率 i,j虚

    2、数单位虚数单位 inf无限值。类似无限值。类似n/0的表达式生成的结果为的表达式生成的结果为inf,其中,其中n为非为非0实数实数 NaN表示不合法的数值值,非数值。类似表示不合法的数值值,非数值。类似0/0和和inf/inf的表达式生成的的表达式生成的结果,与结果,与NaN有关的算术运算结果,以及有关的算术运算结果,以及n/0,n为复数时的计算结为复数时的计算结果都是果都是NaN computer计算机类型计算机类型 versionMATLAB版本字符串版本字符串 下表列出了MATLAB提供的一些内部函数。变量变量v变量名 MATLAB变量名的第变量名的第1个字符必须是字母,后面个字符必须是

    3、字母,后面可以跟字母、数字和下划线的任何组合可以跟字母、数字和下划线的任何组合。注意:注意:MATLABMATLAB中变量名有大小写区分,所以中变量名有大小写区分,所以A A和和a a是不同的变量是不同的变量。v创建变量 在MATLAB中创建变量很简单,不必声明变量不必声明变量的数据类型。例如在命令窗口键入下面的命令行就可以创建一个A变量。A=9 A=9 预留关键字不允许重载预留关键字不允许重载用变量给变量赋值,等式右边变量必须有值用变量给变量赋值,等式右边变量必须有值Isvarname ddd 判断合法性判断合法性v变量的数据类型数 组逻辑型字符型数值型单元数组结构数组函数句柄Java类定制

    4、类int8,uint8int16,uint16int32,uint32SingleDoubleFormat设置变量的输出格式A=1 Format long A ;format long pi single(pi)Format hex bank +数组和矩阵 MATLAB中,所有数据都用数组或矩阵形式进行保存。数组、矩阵属于数据结构而非数据类型。v 数组v 矩阵数组构造数组的方法:v直接构造法v增量法vlinspace函数法直接构造数组 在MATLAB中构造数组,只需要用空格或逗号间隔数组元素,然后用方括号括起来就行了。如 x=0 2 3 6 7 8 或 x=0,2,3,6,7,8就构造了一个有

    5、6个元素的数组x。用增量法构造数组 利用MATLAB提供的冒号运算符(first:step:last)可以生成数组。数组中的元素按顺序从first一直到last,增量为step。v如果不指定增量step,则按升序生成数组,后面的数比它前面第一个数大1。v如果要求生成降序排列的数组,指定一个负的增量。v增量可以是整数,也可以是小数。vfirst:step:last)等间隔vA=1:2:20vB=-7:0.2:-3vC=9:1:0用linspace函数构造数组 用linspace函数构造数组,需要指定首尾值和元素总个数。基本形式是:x=linspace(first,last,num)其中,firs

    6、t,last和num分别为x数组的首尾元素和首尾元素和元素个数元素个数。如 x=linspace(0,10,5)x=0 2.5000 5.0000 7.5000 10.0000 矩阵矩阵构造矩阵的方法:构造矩阵的方法:v简单的创建方法简单的创建方法v构造特殊矩阵构造特殊矩阵v聚合矩阵聚合矩阵v组合不同类型的数据组合不同类型的数据用简单方法构造矩阵 MATLAB中创建矩阵最简单的方法是使用符号。在方括号内输入多个元素可以创建矩阵的一个行。用逗号或空格把用逗号或空格把每个元素间隔开。如果想开始一个新行,每个元素间隔开。如果想开始一个新行,用分号终止当前行用分号终止当前行:A=row1;row2;.

    7、;rown 下面创建一个3行5列的数值矩阵。A=12 62 93-8 22;16 2 87 43 91;-4 17-72 95 6 A=12 62 93 -8 22 16 2 87 43 91 -4 17 -72 95 6构造特殊矩阵 MATLAB提供了多个创建不同矩阵的函数,如下表所示。函 数功 能ones创建一个所有元素都为1的矩阵 zeros创建一个所有元素都为0的矩阵 eye创建对角线元素为1,其他元素为0的矩阵 accumarray将输入矩阵的元素分配到输出矩阵中的指定位置 diag根据矢量创建对角矩阵 magic创建一个方形矩阵,其中行、列和对角线上元素的和相等 rand创建一个矩

    8、阵或数组,其中的元素为服从均匀分布的随机数 randn创建一个矩阵或数组,其中的元素为服从正态分布的随机数 randperm创建一个矢量(1n的矩阵)聚合矩阵聚合矩阵 矩阵聚合是通过连接一个或多个矩阵来形成新的矩阵。符矩阵聚合是通过连接一个或多个矩阵来形成新的矩阵。符号号 不仅是矩阵构造符,它还是不仅是矩阵构造符,它还是MATLAB聚合运算符。聚合运算符。表达式表达式C=A B在水平方向上聚合矩阵在水平方向上聚合矩阵A和和B,表达式,表达式C=A;B在垂向上聚合它们。在垂向上聚合它们。本例通过在垂向上聚合矩阵本例通过在垂向上聚合矩阵A和和B来构造新矩阵来构造新矩阵C:A=ones(2,5)*6

    9、;%25的矩阵,元素为的矩阵,元素为6 B=rand(3,5);%35的矩阵,元素为随机数的矩阵,元素为随机数 C=A;B%垂向聚合垂向聚合A和和B 组合不同类型的数据 构造矩阵时,如果矩阵的数据类型不同,则MATLAB会自动对某些元素进行类型转换会自动对某些元素进行类型转换,然后生成的矩阵具有相同的类型。用一个高精度的矩阵和一个低精度的矩阵构造新矩阵时,新矩阵是低精度型的。例如,聚合double型和single型的矩阵时,总是生成single型的矩阵。MATLAB会先将double型元素转换为single型。空矩阵被忽略A=5.36;7.01;9.44vA=v 5.3600000000000

    10、0v 7.01000000000000v 9.44000000000000vX=single(4.6)single(-2)pi 5.73*1020vClass(x)vP16聚合矩阵的特殊函数下表列出了聚合矩阵的一些特殊函数。函 数描 述cat沿指定的维聚合矩阵 cat(dim,A,B)horzcat 水平聚合矩阵 horzcat(A,B)vertcat垂向聚合矩阵 repmat通过复制和叠置矩阵来创建新矩阵 repmat(M,v,h)M行上重复 v次,列重复 hblkdiag用已有矩阵创建块对角矩阵 C=A BC=A;B默认水平方向聚合,要求每个子矩阵具有相同的行数;垂直聚合要默认水平方向聚合

    11、,要求每个子矩阵具有相同的行数;垂直聚合要求子矩阵列数相同求子矩阵列数相同X=blkdiag(A,B,C,.)A=magic(5);B=ones(3);C=zeros(2);x=blkdiag(A,B,C)获取矩阵的元素v使用编号索引v使用线性索引v使用冒号v使用end关键字使用编号索引获取矩阵的元素 利用编号和索引,可以获取MATLAB矩阵的元素。要引用矩阵中的特殊元素,用下面的语法指定它的行号和列号,其中A是矩阵变量。按先行后列的顺序指定。A(row,column)使用线性索引获取矩阵的元素 MATLAB保存矩阵中的数据时是作为一个元素列保存作为一个元素列保存。这个元素列又是由矩阵中的所有

    12、列组成的,后一列元素按先后顺序添加到前一列元素的最后。所以,矩阵A A=2 6 9;4 2 8;3 0 1 A=2 6 9 4 2 8 3 5 1 在内存中是按下面的序列保存的:2,4,3,6,2,5,9,8,1 矩阵A第3行第2列的元素可以看作实际保存序列中的第6个元素。要获取这个元素,可以使用标准语法A(3,2)或使用A(6)。使用冒号获取矩阵的元素 利用冒号本身可以引用矩阵某行或列的所有元素。使用下面的语法,可以计算44的魔方矩阵A中所有元素的和。sum(A(:,2)ans=34 将冒号进行索引,可以引用整个矩阵中的所有元素。本例显示矩阵A中的所有元素,按列序返回按列序返回它们:A(:)

    13、使用end关键字获取矩阵的元素 利用end关键字可以指定矩阵某维的最后一个元素。它适用于不知道矩阵有多少行或多少列的情况。例如,可以用下面的语句进行值的替换:B(1:3:end)=-10 每隔2个元素改值获取与矩阵相关信息vlength(X)返回最长维的长度 等价于max(size(X)vndims(X)返回维数vnumel(X)返回元素个数vsize(X)返回每一维长度 X=ones(5,6,int8)P18字符串(字符数组)字符串(字符数组)v字符串的创建字符串的创建v类型转换类型转换v字符串的比较字符串的比较v字符串的聚合字符串的聚合v字符串的搜索和替换字符串的搜索和替换创建字符串创建字

    14、符串v通过把字符放到单引号中来指定字符数通过把字符放到单引号中来指定字符数据。如,下面创建一个据。如,下面创建一个15的字符串的字符串country。country=China;v创建一个二维字符串时,确定每行具有创建一个二维字符串时,确定每行具有相同的长度,例如,下面两个字符串都相同的长度,例如,下面两个字符串都有有5个字符,用它们组合起来的二维字符个字符,用它们组合起来的二维字符串是合法的。串是合法的。name=Li Yi;Hu Xu name=Li Yi Hu Xu 长度问题长度问题 根据不同长度的字符串创建字符串时,将短的那些字符串后面用空格根据不同长度的字符串创建字符串时,将短的那些

    15、字符串后面用空格补齐,使所有字符串的长度相同。补齐,使所有字符串的长度相同。char(,.)函数函数 自动以最长的输入字符串长度作为标准自动以最长的输入字符串长度作为标准串提取串提取 deblank()删除后面的空格删除后面的空格TrimnameTrimname=deblank(name(2,:)=deblank(name(2,:)Size(TrimnameSize(Trimname)类型转换类型转换v用用char函数把单元数组转换为标准字符串数组。函数把单元数组转换为标准字符串数组。char(A);vstr2double函数把一个字符串单元数组转换为字符函数把一个字符串单元数组转换为字符串表

    16、示的双精度值。串表示的双精度值。A=3.2;-56.3,.,str2double(A)vint2str函数将整型数据转换为字符串型数据。函数将整型数据转换为字符串型数据。vnum2str函数对输出字符串的格式提供了更多控制,函数对输出字符串的格式提供了更多控制,该函数的第该函数的第2个变量是可选的,它设置输出字符串个变量是可选的,它设置输出字符串的位数,或指定一个实际的格式。的位数,或指定一个实际的格式。vmat2str函数将数组转换为字符串。函数将数组转换为字符串。vmat2str函数将返回一个包含文本的字符串,该文函数将返回一个包含文本的字符串,该文本在命令行中输入,用于创建矩阵本在命令行

    17、中输入,用于创建矩阵。字符串的比较字符串的比较v用用strcmp函数比较字符串,字符串不相等时,函数比较字符串,字符串不相等时,返回返回falsefalse。vstrcmp(A,B,n)对对A A,B B前前n+1n+1个字符个字符分别分别比较比较 v可以使用可以使用MATLABMATLAB的关系运算符,如,可以用的关系运算符,如,可以用()确定两个字符串中的相同字符。所()确定两个字符串中的相同字符。所有关系运算符有关系运算符(,=,=,=,=,!=)比较比较对应字符的值。对应字符的值。字符串的聚合字符串的聚合v字符串通常可以由更小的元素聚合而成。两字符串通常可以由更小的元素聚合而成。两个通

    18、用的聚合方法是使用个通用的聚合方法是使用MATLAB聚合运算聚合运算符(符()或)或sprintf函数。函数。vsprintf(格式,变量)(格式,变量)sprintf(There are%d boys,a);v用用strcat函数也可以把两个或更多字符串组合函数也可以把两个或更多字符串组合在一起。在一起。v strcat(A,B,Cstrcat(A,B,C,)字符分类字符分类isletter(A)逐个字符判断是否为字母Isspace(A)逐个字符判断是否为空格mystring=this is A 217A=isletter(mystring)B=isspace(mystring)字符串的搜索

    19、和替换字符串的搜索和替换vstrrep函数进行标准的搜索和替代操作函数进行标准的搜索和替代操作。strrep(s1,s2,s3)在在s1中用中用s3替代替代s2 s1=How are you s3=uo s2=ouvfindstr函数把子字符串的起始位置返回到一个更长的字符串函数把子字符串的起始位置返回到一个更长的字符串中。中。findstr(s1,s2)vstrtok函数在输入字符串中第一次发现间隔符时返回间隔符函数在输入字符串中第一次发现间隔符时返回间隔符前面的字符,可用该函数把句子分离成单词。前面的字符,可用该函数把句子分离成单词。vstrtok()vstrmatch函数在字符串或字符串

    20、单元数组的整个行中进行函数在字符串或字符串单元数组的整个行中进行查找,看有没有以给定字符序列打头的字符串,它返回以该查找,看有没有以给定字符序列打头的字符串,它返回以该字符串打头的行的行号。字符串打头的行的行号。vstrmatch(s1,s2)多维数组多维数组v用索引生成多维数组用索引生成多维数组v用特殊函数生成多维数组用特殊函数生成多维数组v用用cat函数生成多维数组函数生成多维数组用索引生成多维数组用索引生成多维数组 创建多维数组的方法之一是先创建一个二维数组,创建多维数组的方法之一是先创建一个二维数组,然后扩展它。如:然后扩展它。如:A=5 7 8;0 1 9;4 3 6;A是一个是一个

    21、33的数值,即它的行维和列维都是的数值,即它的行维和列维都是3。给给A添加第三维。添加第三维。A(:,:,2)=1 0 4;3 5 6;9 8 7 用特殊函数生成多维数组用特殊函数生成多维数组 可 以 使 用 与 生 成 二 维 数 组 相 同 的 方 式,用可 以 使 用 与 生 成 二 维 数 组 相 同 的 方 式,用randn,ones和和zeros函数等生成多维数组。提供的函数等生成多维数组。提供的每个变量表示生成的数组中对应维的大小。如:要每个变量表示生成的数组中对应维的大小。如:要创建一个正态分布随机数的创建一个正态分布随机数的432的数组,可以的数组,可以输入:输入:B=ran

    22、dn(4,3,2)要生成一个元素均为同一常数的数组,使用要生成一个元素均为同一常数的数组,使用repmat函数。如:函数。如:B=repmat(5,3 4 2)用用cat函数生成多维数组函数生成多维数组 cat函数是创建多维数组的一种简单方式,它按指函数是创建多维数组的一种简单方式,它按指定的维数将多个数组聚合到一起,其调用格式为:定的维数将多个数组聚合到一起,其调用格式为:B=cat(dim,A1,A2.)其中其中A1,A2等是进行聚合的数组,等是进行聚合的数组,dim是维数。是维数。结构结构v创建结构数组创建结构数组v获取结构数组中的数据获取结构数组中的数据v数组的大小数组的大小v操作字段

    23、操作字段v结构的嵌套结构的嵌套创建结构数组创建结构数组v使用赋值语句使用赋值语句 可以通过将数据赋给单独的字段来生可以通过将数据赋给单独的字段来生成一个简单的成一个简单的11结构数组。结构数组。v使用使用struct函数函数 可以用可以用struct函数预分配一个结构数组。函数预分配一个结构数组。其基本形式为:其基本形式为:str_array=struct(field1,val1,field2,val2,.)其中,变量为字段名和它们的对应值。其中,变量为字段名和它们的对应值。单元数组单元数组v创建单元数组创建单元数组v获取单元数组的数据获取单元数组的数据v删除单元和重塑单元数组删除单元和重塑单

    24、元数组创建单元数组创建单元数组v用赋值语句创建单元数组用赋值语句创建单元数组 可以使用单元索引和内容索引两种方式创可以使用单元索引和内容索引两种方式创建单元数组。建单元数组。v用用cell函数创建单元数组函数创建单元数组 使用使用cell函数,可以预分配指定大小的空单函数,可以预分配指定大小的空单元数组,如,下面的语句创建一个空的单元元数组,如,下面的语句创建一个空的单元数组:数组:B=cell(2,3);然后可以用赋值语句填充然后可以用赋值语句填充B单元。单元。v单元数组单元数组以任意形式的数组为元素的多维数组 A=1 2;3 4;B=1:4,A,abcd 对单元变量直接赋值 B1,1=1:

    25、4;B1,2=A;B1,3=abcd 预分配单元型变量的存储空间 B=cell(1,3)%3个元素,均为空 提取单元型变量元素的办法 B2 B(2)单元型变量可以嵌套 C=1:4,A,B 相关函数 cellfun(islogical,B)%判断B是否为逻辑型变量,此外还有%isreal,isempty,length,ndims 等 celldisp(B)%用于完全显示B的内容 cellplot(B)%用图形显示B的结构 iscell(B)%判断B是否为单元型变量函数句柄函数句柄 函数句柄是一种函数句柄是一种MATLAB数据类型,它包数据类型,它包含用于引用函数的信息。创建函数句柄时,含用于引用函数的信息。创建函数句柄时,MATLAB在句柄中保存所有与要运行的函数在句柄中保存所有与要运行的函数有关的信息。有关的信息。egeg

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Matlab-LEC2-Matlab数据类型课件.ppt
    链接地址:https://www.163wenku.com/p-5101424.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库