Matlab实训3-字符串元胞和结构数组.ppt_第1页
Matlab实训3-字符串元胞和结构数组.ppt_第2页
Matlab实训3-字符串元胞和结构数组.ppt_第3页
Matlab实训3-字符串元胞和结构数组.ppt_第4页
Matlab实训3-字符串元胞和结构数组.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

实训二 字符串数组、元胞数组和结构数组 2.1 字符串数组 2.2 元胞数组(单元数组) 2.3 结构数组(构架数组) 2.1 字符串数组 2.1.1字符串构造 t=How about this character string? t = How about this character string? size(t) ans = 1 32 whos Name Size Bytes Class t 1x32 64 char array Grand total is 34 elements using 80 bytes u=abs(t) u = Columns 1 through 12 72 111 119 32 97 98 111 117 116 32 116 104 Columns 13 through 24 105 115 32 99 104 97 114 97 99 116 101 114 Columns 25 through 32 32 115 116 114 105 110 103 63 char(u) ans = How about this character string? u=t(16:24) u = character u= Hello, ; v= World! ; v= Character strings having more than one row must have the same number of column just like matrices! v = Character strings having more than one row must have the same number of column just like matrices! w=u v w = Hello,World! disp(w) Hello,World! lengends=char(Wilt,Russel,Kareem) lengends = Wilt Russel Kareem char(one,tow,three) ans = one tow three strvcat(one,two,three) ans = one two three 2.1.2数字与字符串的相互转换 Dec2hex十进制数到十六进制字符串转换 fprintf把格式化的文本写到文件中或显示屏上 hex2dec十六进制字符串转换成十进制数 hex2num十六进制字符串转换成IEEE浮点数 int2str整数转换成字符串 lower字符串转换成小写 num2str数字转换成字符串 setstrASCII转换成字符串 sprintf用格式控制,数字转换成字符串 sscanf用格式控制,字符串转换成数字 str2mat字符串转换成一个文本矩阵 str2num字符串转换成数字 upper字符串转换成大写 rad=2.5; area=pi*rad2; t= A circle of radius num2str(rad) has an area of num2str(area) . ; disp(t) A circle of radius 2.5 has an area of 19.63 t=sprintf( A circle of radius %.4g has an area of %.4g. ,rad, area); disp(t) A circle of radius 2.5 has an area of 19.63. fprintf( A circle of radius %.4g has an area of %.4g.n ,rad, area) A circle of radius 2.5 has an area of 19.63. fprintf与sprintf的区别是,前者把 转换结果书写于屏幕或指定的文 件,而后者则是把转换结果存放 于变量 fprintf( %.0en ,pi)3e+00 fprintf( %.3en ,pi)3.142e+00 fprintf( %.10en ,pi)3.1415926536e+00 fprintf( %.0fn ,pi)3 fprintf( %.3fn ,pi)3.142 fprintf( %.10fn ,pi)3.1415926536 fprintf( %.0gn ,pi)3 fprintf( %.3gn ,pi)3.14 fprintf( %.10gn ,pi)3.141592654 fprintf( %.8.0gn ,pi) 3 fprintf( %.8.3gn ,pi) 3.14 fprintf( %.8.10gn ,pi)3.141592654 2.1.3字符串函数 eval(string)作为一个MATLAB命令求字符串的值 blanks(n)返回一个n个零或空格的字符串 deblank去掉字符串中后拖的空格 feval求由字符串给定的函数值 findstr从一个字符串内找出字符串 isletter字母存在时返回真值 isspace空格字符存在时返回真值 isstr输入是一个字符串,返回真值 lasterr返回上一个所产生MATLAB错误的字符串 strcmp字符串相同,返回真值 strrep用一个字符串替换另一个字符串 strtok在一个字符串里找出第一个标记 a=eval( sqrt(2) ) a = 1.4142 eval( a=sqrt(2) ) a = 1.4142 a=feval( sqrt ,2) a = 1.4142 b=Peter Piper picked a peck of pickled peppers ; findstr(b, ) % find space ans = 6 12 19 21 26 29 37 findstr(b, p ) % find the letter p ans = 9 13 22 30 38 40 41 find (b= = p ) % for single character searches ans = 9 13 22 30 38 40 41 findstr(b, cow ) % find the word cow ans = findstr(b, pick ) % find the string pick ans = 13 30 strrep(b, p , P ) % capitalize all p s ans = Peter PiPer Picked a Peck of Pickled PePPers strrep(b, Peter , Pamela ) % change Peter to Pamela ans = Pamela Piper picked a peck of pickled peppers disp(b) Peter Piper picked a peck of pickled peppers strtok(b) % ans = Peter c, r=strtok(b) c = Peter r = Piper picked a peck of pickled peppers 2.2 单元数组 2.2.1单元数组的创建 A(1,1)=1 2 3;4 5 6;7 8 9; A(1,2)=2+3i; A(2,1)=A character atring; A(2,2)=12:-2:0; A A = 3x3 double 2.0000+ 3.0000i A character atring 1x7 double A1,1=1 2 3;4 5 6;7 8 9; A1,2=2+3i; A2,1=A character string; A2,2=12:-2:0; A A = 3x3 double 2.0000+ 3.0000i A character string 1x7 double 单元索引 按值寻址 A(1,1) ans = 3x3 double A1,1 ans = 1 2 3 4 5 6 7 8 9 celldisp(A) A1,1 = 1 2 3 4 5 6 7 8 9 A2,1 = A character atring A1,2 = 2.0000 + 3.0000i A2,2 = 12 10 8 6 4 2 0 cellplot(A,legend) B=1 2,John Smith,;2+3i,5 B = 1x2 double John Smith 2.0000+ 3.0000i 5 C=cell(2,3) C = C(1,1)=This doesnt work ? Conversion to cell from char is not possible. C(1,1)=This does work C = This does work C2,3=This works too C = This does work This works too 2.2.2单元数组处理 A A = 3x3 double 2.0000+ 3.0000i A character string 1x7 double B B = 1x2 double John Smith 2.0000+ 3.0000i 5 C=A;B C = 3x3 double 2.0000+ 3.0000i A character string 1x7 double 1x2 double John Smith 2.0000+ 3.0000i 5 D=C(1 3,:) D = 3x3 double 2.0000+ 3.0000i 1x2 double John Smith C(3,:)= C = 3x3 double 2.0000+ 3.0000i A character string 1x7 double 2.0000+ 3.0000i 5 2.2.3获得单元数组的内容 B B = 1x2 double John Smith 2.0000+ 3.0000i 5 x=B2,2 x = 5 class(x) ans = double y=B(2,2) y = 5 y=B(4) y = 5 class(y) ans = cell class(y1) ans = double d,e=deal(B:,2) d = John Smith e = 5 B:,2 ans = John Smith ans = 5 d=B:,2 ? Illegal right hand side in assignment. Too many elements. celldisp(A) A1,1 = 1 2 3 4 5 6 7 8 9 A2,1 = A character string A1,2 = 2.0000 + 3.0000i A2,2 = 12 10 8 6 4 2 0 A1,1(3,:) ans = 7 8 9 A4(2:5) ans = 10 8 6 4 A2,1(3:11) ans = character 2.3 结构数组 2.3.1 创建结构数组 circle.radius=2.5; circle.center=0,1; circle.linestyle=-; circle.color=red; circle circle = radius: 2.5000 center: 0 1 linestyle: - color: red circle(2).radius=3.4; circle(2).color=green; circle(2).linestyle=:; circle(2).center=2.3 -1.2; circle circle = 1x2 struct array with fields: radius center linestyle color circle(2).radius=sqrt(2); circle circle = 1x2 struct array with fields: radius center linestyle color circle.radius ans = 2.5000 ans = sqrt(2) circle(1).filled=yes circle = 1x3 struct array with fields: radius center linestyle color filled circle.filled ans = yes ans = ans = circle(2).filled=no; circle(3).filled=yes; circle.filled ans = yes ans = no ans = yes values1=2.5 sqrt(2),25.4; values2=0 1 2.3 -1.2 -1 0; values3=-,:,-.; values4=red,green,blue; values5=yes,no,yes; CIRCLE=struct(radius,values1,center,values2,.) linestyle,values3,color,values4,filled,values5) CIRCLE = 1x3 struct array with fields: radius center linestyle color filled 2.3.2结构处理 A=circle CIRCLE A = 1x6 struct array with fields: radius center linestyle color filled square.width=5; square.height=14; square.center=zeros(1,2); square.rotation=pi/4; B=circle square ? Error using = horzcat CAT arguments are not consistent in structure field number. 2.3.3获取结构内容 circle circle = 1x3 struct array with fields: radius center linestyle color filled rad2=circle(2).radius rad2 = sqrt(2) circle(1).radius ans = 2.5000 col=circle.color ? Illegal right hand side in assignment. Too many elements. c1,c2,c3=deal(circle.color) c1 = red c2 = green c3 = blue 4.3.4结构函数circle = 1x3 struct array with fields: radius center linestyle color filled fieldnames(circle) ans = radius

温馨提示

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

评论

0/150

提交评论