matlab程序设计入门20PPT 10-字元与字串_第1页
matlab程序设计入门20PPT 10-字元与字串_第2页
matlab程序设计入门20PPT 10-字元与字串_第3页
matlab程序设计入门20PPT 10-字元与字串_第4页
matlab程序设计入门20PPT 10-字元与字串_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

第十章:字符与字符串,.tw.tw/jang清大资工系多媒体检索实验室,本章简介,本章介绍MATLAB用于处理字符(Characters)与字符串(Strings)的指令及相关数据型态。MATLAB处理字符串的相关指令大部分都放在下列目录之中:MATLAB根目录toolboxmatlabstrfun其中的strfun就是代表StringFunctions。若要查询与字符和字符串相关的指令,可在MATLAB下输入:helpstrfun或是helpstrings,10-1字符与字符串的基本概念,数个字符(Characters)可以构成一个字符串(Strings)一个字符串是被视为一个列向量(RowVector)进行储存此一字符串中的每一字符(含空格符),是以其ASCII码的形式存放于此列向量中的每一个元素(Element),字符与字符串的基本概念,Matlab用单引号来界定字符串变量,多个字符串变量可直接并排,以得到一个新字符串变量,例如:范例10-2:string102.mstr3=IlikeMATLAB,JavaScript,andPerl!,字符与字符串的基本概念,欲输入含有单引号的字符串,可重复单引号的使用若要计算字符串变量的长度(即组成字符的个数),可用length指令范例10-4:string104.mans=16,字符串和其ASCIIcode,double指令:检视字符串变量的储存内容(即ASCII内码)char指令:将ASCII内码转回字符串形式范例10-6:string106.mphraseascii=Columns1through12733911810132103111116329732100Columns13through169711610133sentence2=Ivegotadate!,字符的储存,无论是中文或英文,每一个字符都会占用两个字节(2Bytes),故在上页中,字符串变量sentence总共由16个字符构成,占用的内存总计为三十二个字节(32bytes)whos指令:检视字符串变量sentence所占用储存空间(whos变量)MATLAB是以两个字节来储存一个字符,所以也可以支持Big5的中文码,而且Big5中文的ASCII内码都会大于数字128由于MATLAB将字符串以其相对应之ASCII内码(即数字形式)储存成一列向量,故若对此字符串直接进行数值运算,MATLAB会先将此字符串转成数值,再进行一般数值向量的运算,字符与字符串的基本概念-eval,eval指令:直接“执行”某一特定字符串,其效果就如同直接在MATLAB指令窗口内输入此一特定字符串eval指令特别适用于在for-loop内自动产生有规律的变量名称范例10-11:string111.mNameSizeBytesClassx33x372doublearrayx44x4128doublearrayx55x5200doublearrayx66x6288doublearrayGrandtotalis86elementsusing688bytesx3,x4,x5,x6都是在for-loop中产生的变量,分别代表维度为33、44、55、66的魔方阵,字符串的判断,class或ischar指令:判断某一个变量是否为字符串范例10-12:string112.m字符串变量所占用的空间是同长度双精准(Double)数值变数的四分之一,10-2一个变量来储存多个字符串,第一种方法是使用二维字符数组(TwoDimensionalCharacterArrays)必须先确认每个字符串(即每一横列)的长度一样,否则就必须在短字符串结尾补上空格符范例10-13:string201.mdepartments=eecsecon,一个变量来储存多个字符串,用char指令储存多个字符串得到结果和前一个范例依样;从二维字符数组抽取出字符串时,切记要使用deblank指令来移除尾部的空格符范例10-15:string203.m.,一个变量来储存多个字符串,当字符串的长度差异甚大,那么使用二维字符数组来储存多个字符串,将造成内存空间的浪费,怎么办?异质数组:使用大括号框住多个字符串,或用cellstr指令将字符数组转换成异质数组(string204.m,string205.m)若要将包含字符串的异质数组转换成一般的二维字符数组,还是可以使用char指令,10-3字符串的比较、寻找、代换、分解与结合,strcmp指令:用于比较字符串内容的异同范例10-19:string301.m不相等回传0,相等回传1DIFFERENTtoC,字符串的比较和寻找,strncmp指令:用于比较字符串的前n个字符strcmp及strncmp指令亦可用于字符串异质数组findstr指令:寻找在某一个长字符串中的子字符串(Substrings),并传回其起始位置strrep指令:用于字符串寻找及代换,例如:newString=strrep(string,pattern,pattern2),字符串的分解,strtok指令:根据一给定的分界字符(DelimitingCharacters),将一字符串拆解成数个字符串,预设分界字符为空格符strvcat指令:将拆解下来的字符串内容(即储存在字符串变量chopped中)加到二维字符数组parsed中范例10-24:string306.mparsed=eecseconstatme,字符串的结合,MATLAB在读入中文字符串时,将每一个中文字的2-byte分开来读,造成两个中文字变成四个字符串元素xlate指令:将中文的2-byte结合在一起范例10-27:string309.mline2=我是Rogerans=7,10-4字符串、数值与数组的转换,int2str指令:将整数型态的数据转换成字符串数据例如:y=int2str(x),x为整数,y为字符串num2str指令:将实数转为字符串dec2hex指令:将10进位数值数据转换成16进位的字符串表示法更多类似指令如:hex2num,hex2dec,bin2dec.,字符串数组的转换,mat2str指令可将矩阵转换为字符串,此字符串若再经由eval指令的使用,可再变回原先的矩阵范例10-32:string405.mB=121;356ans=1,字符串与数值的结合,sprintf指令:结合数值或字符串,以产生新字符串(%s-

温馨提示

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

评论

0/150

提交评论