资源描述:
《matlab使用单元数组和结构数组》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Matlab使用字符串数组、单元数组(cellarray)和结构数组(structarray)要在MALTAB中实现比较复杂的编程,就不能不用单元数组(cellarray)和结构数组(structarray)。而且在Matlab中实现struct比C中更为方便。MATLAB字符串数组的创建与运算字符串数组主要用于可视化编程内容,如界面设计和图形绘制。1.字符串变量的创建字符变量的创建方法是:在指令窗口中先把待建的字符放在“单引号对”中,再按回车键。注意,该“单引号对”必须在英文状态下输入。这“单引号对”是M
2、ATLAB用来识别字符串变量所必须的。如:>>a='Thisisanexample.'a= Thisisanexample.>>msg='You''reright!'%创建带单引号的字符串msg= You'reright!2.字符串数组的标识字符串变量的每个字符(英文字母、空格和标点都是平等的)占据一个元素位,在数组中元素所处的位置用自然数标识。如:>>a='Thisisanexample.'>>b=a(1:4)%提出一个子字符串b= Thisra=a(end:-1:1)%字符串的倒排ra=
3、 .elpmaxenasisihT又如:>>A='这是一个算例。';>>B=size(A)%符号数组A的“大小”B= 1 7>>C=A([56])%提出一个子字符串C= 算例3.字符串的ASCII码5.1-9,,services,andmakethecitymoreattractive,strengtheningpublictransportinvestment,establishedasthebackboneoftheurbanrailtransitmulti-level,multi-funct
4、ionalpublictransportsystem,thusprotectingtheregionalpositionandachieve字符串的存储是用ASCII码实现的。指令abs和double都可以用来获取串数组所对应的ASCII码数值数组。指令char可把ASCII码数组变为串数组。如>>d=double(a)d= 84104105115321051153297110321011209710911210810146>>char(d)ans= Thisisanexample.例:对字符串AS
5、CII码数组的操作:使字符串中字母全部大写>>w=find(a>='a'&a<='z');%找出串数组a中,小写字母的元素位置。>>d(w)=d(w)-32;%大小写字母ASCII值差32用数值加法改变部分码值。>>char(d)%把新的ASCII码翻成字符ans= THISISANEXAMPLE.4.字符串数组的运算(主要是连接)4.1连接成一行>>Aa=[A,a]可将字符串连接成一行长字符串Aa= 这是一个算例。Thisisanexample.>>name=strcat('Thomas','R
6、.','Lee')%连接两个字符串,每个字符串最右边的空格被裁切name= ThomasR.Lee4.2多个字符串形成多行字符串矩阵l用中括号则要求两个字符串一般长>>Aa=[A;a];%操作错误,不能成生成二行的矩阵,长度不一致l用char或strvcat函数进行连接>>D=strvcat('Hello','Yes','No','Goodbye')%利用串操作函数(chat也可以)创建多行串数组,连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格,使与最长字符串相等,会忽略空字符串。D
7、= Hello Yes No Goodbye5.字符串替换和查找strrep—进行字符串替换,区分大小写>>strrep(str1,str2,str3)%它把str1中所有的str2字串用str3来替换strfind(str,patten)%查找str中是否有pattern,返回出现位置,没有出现返回空数组findstr(str1,str2)%查找str1和str2中,较短字符串在较长字符串中出现的位置,没有出现返回空数组strmatch(patten,str)%检查patten是否和str
8、最左侧部分一致strtok(str,char)%返回str中由char指定的字符串前的部分和之后的部分,5.1-9,,services,andmakethecitymoreattractive,strengtheningpublictransportinvestment,establishedasthebackboneoftheurbanrailtransitmulti-level,multi-functiona