资源描述:
《matlab第九讲》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab第九讲其它主要数据类型赵瑞字符串元胞逻辑数组9.1字符串数组本节内容集中于字符串数组(以下简称串数组)。与数值数组相比,串数组在matlab中的重要性较小,但不可缺少。假如没有串数组及相应的操作,那么数据可视化、图形用户界面的制作将会遇到困难。既然字符串与数值是两种不同的数据类(Class),他们的创建方式也就不同。字符变量的创建方式是:在指令窗中,先把待建的字符放在“单引号对”中,再按[Enter]键。注意:“单引号对”必须在英文状态下输入。一 字符串入门【例】实际操作本例,以体会数值量与字符串的区别。cl
2、ear%清除所有内存变量a=12345.6789%给变量a赋数值标量a = 1.2346e+004class(a)%对变量a的类别进行判断ans=doublea_s=size(a)%数值数组a的"大小"a_s= 1 1b='S'%给变量b赋字符标量(即单个字符)b =Sclass(b)%对变量b的类别进行判断ans=charb_s=size(b)%符号数组b的"大小"b_s= 1 1二、串数组的属性和标识【*例】本例演示:串的基本属性、标识和简单操作。(1)创建串数组a='Thi
3、s is an example.' a =This is an example.(2)串数组a的大小size(a)ans= 1 19(3)串数组的元素标识a14=a(1:4)%提出一个子字符串a14 =Thisra=a(end:-1:1)%字符串的倒排ra=.elpmaxenasisihT(4)中文字符串数组A='这是一个算例。';%创建中文字符串A_s=size(A)%串数组的大小A_s= 1 7A56=A([5 6])%取串的子数组A56 =算例(6)由小串构成长串ab=[a
4、(1:7),' ',A56,' .']%这里第2个输入为空格串ab=This is Example算例.三 复杂串数组的创建1.多行串数组的直接创建【*例】多行串数组的直接输入示例。clearS=['This string array ' 'has multiple rows.'] S =This string array has multiple rows.size(S)ans=2 182利用串操作函数创建多行串数组【*例】演示:用专门函数char , str2mat ,strvcat创建多行
5、串数组示例。S1=char('Thisstringarray','hastwo rows.') S1 =This string arrayhas two rows.S2=str2mat('这','字符','串数组','由4行组成') S2 =这 字符 串数组 由4行组成S3=strvcat('这','字符','串数组',' ','由4行组成')%“空串”会产生一个空格行S3 =这 字符 串数组 由4行组成size(S3)ans= 5 5四字符串操作
6、函数(了解)1.findstr从一个字符串内找出字符串Exampless='Howmuchwoodwouldawoodchuckchuck?';findstr(s,'a')returns21findstr('a',s)returns21findstr(s,'wood')returns[1023]findstr(s,'Wood')returns[]findstr(s,'')returns[4914202232]2.isletterISLETTERTrueforlettersofthealphabet.ForastringS,I
7、SLETTER(S)is1forlettersofthealphabetand0otherwise.Examplesa='Howmuch?'>>isletter(sa)ans=1110111103.isspace空格字符存在时返回真值isspace(sa)ans=0001000004.isstr输入是一个字符串,返回真值b=1;>>isstr(sa)ans=1>>isstr(b)ans=05.strcmp字符串相同,返回真值STRCMPComparestrings.STRCMP(S1,S2)returns1ifstrings
8、S1andS2arethesameand0otherwise.Examplesstrcmp(s,sa)ans=0ss=s;strcmp(s,ss)ans=16.strrep用一个字符串替换另一个字符串Example:s1='Thisisagoodexample';strrep(s1,'go