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