資源描述:
《使用單元數(shù)組和結(jié)構(gòu)數(shù)組》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Matlab使用字符串?dāng)?shù)組、單元數(shù)組(cellarray)和結(jié)構(gòu)數(shù)組(structarray)要在MALTAB中實(shí)現(xiàn)比較復(fù)雜的編程,就不能不用單元數(shù)組(cellarray)和結(jié)構(gòu)數(shù)組(structarray)。而且在Matlab中實(shí)現(xiàn)struct比C中更為方便。MATLAB字符串?dāng)?shù)組的創(chuàng)建與運(yùn)算字符串?dāng)?shù)組主要用于可視化編程內(nèi)容,如界面設(shè)計(jì)和圖形繪制。1.字符串變量的創(chuàng)建字符變量的創(chuàng)建方法是:在指令窗口中先把待建的字符放在“單引號(hào)對(duì)”中,再按回車鍵。注意,該“單引號(hào)對(duì)”必須在英文狀態(tài)下輸入。這“單引號(hào)對(duì)”是MATLAB用來識(shí)別字符串變量所必須的
2、。如:>>a='Thisisanexample.'a=???Thisisanexample.>>msg='You''reright!'%創(chuàng)建帶單引號(hào)的字符串msg=???You'reright!2.字符串?dāng)?shù)組的標(biāo)識(shí)字符串變量的每個(gè)字符(英文字母、空格和標(biāo)點(diǎn)都是平等的)占據(jù)一個(gè)元素位,在數(shù)組中元素所處的位置用自然數(shù)標(biāo)識(shí)。如:>>a='Thisisanexample.'>>b=a(1:4)%提出一個(gè)子字符串b=???Thisra=a(end:-1:1)%字符串的倒排ra=???.elpmaxenasisihT又如:>>A='這是一個(gè)算例。';>>
3、B=size(A)%符號(hào)數(shù)組A的“大小”B=???1??7>>C=A([56])%提出一個(gè)子字符串C=???算例3.字符串的ASCII碼字符串的存儲(chǔ)是用ASCII碼實(shí)現(xiàn)的。指令abs和double都可以用來獲取串?dāng)?shù)組所對(duì)應(yīng)的ASCII碼數(shù)值數(shù)組。指令char可把ASCII碼數(shù)組變?yōu)榇當(dāng)?shù)組。如>>d=double(a)d=???84104105115321051153297110321011209710911210810146>>char(d)ans=???Thisisanexample.例:對(duì)字符串ASCII碼數(shù)組的操作:使字符串中字母全部大
4、寫>>w=find(a>='a'&a<='z');%找出串?dāng)?shù)組a中,小寫字母的元素位置。>>d(w)=d(w)-32;%大小寫字母ASCII值差32用數(shù)值加法改變部分碼值。>>char(d)%把新的ASCII碼翻成字符ans=????THISISANEXAMPLE.4.字符串?dāng)?shù)組的運(yùn)算(主要是連接)4.1連接成一行>>Aa=[A,a]可將字符串連接成一行長字符串Aa=???這是一個(gè)算例。Thisisanexample.>>name=strcat('Thomas','R.','Lee')%連接兩個(gè)字符串,每個(gè)字符串最右邊的空格被裁切name=?
5、????ThomasR.Lee4.2多個(gè)字符串形成多行字符串矩陣l用中括號(hào)則要求兩個(gè)字符串一般長>>Aa=[A;a];%操作錯(cuò)誤,不能成生成二行的矩陣,長度不一致l用char或strvcat函數(shù)進(jìn)行連接>>D=strvcat('Hello','Yes','No','Goodbye')%利用串操作函數(shù)(chat也可以)創(chuàng)建多行串?dāng)?shù)組,連接多行字符串,每行長度可不等,自動(dòng)把非最長字符串最右邊補(bǔ)空格,使與最長字符串相等,會(huì)忽略空字符串。D=???Hello???Yes???No???Goodbye5.字符串替換和查找strrep—進(jìn)行字符串替換,區(qū)
6、分大小寫>>strrep(str1,str2,str3)%它把str1中所有的str2字串用str3來替換strfind(str,patten)%查找str中是否有pattern,返回出現(xiàn)位置,沒有出現(xiàn)返回空數(shù)組findstr(str1,str2)%查找str1和str2中,較短字符串在較長字符串中出現(xiàn)的位置,沒有出現(xiàn)返回空數(shù)組strmatch(patten,str)%檢查patten是否和str最左側(cè)部分一致strtok(str,char)%返回str中由char指定的字符串前的部分和之后的部分,6.常用字符串操作函數(shù)blanks(n)—?jiǎng)?chuàng)
7、建有n個(gè)空格組成的字符串deblank(str)—裁切字符串的尾部空格strtrim(str)—裁切字符串的開頭和尾部的空格,制表,回車符lower(str)—將字符串中的字母轉(zhuǎn)換成小寫upper(str)—將字符串中的字母轉(zhuǎn)換成大寫sort(str)—按照字符的ASCII值對(duì)字符串排序num2str—將數(shù)字轉(zhuǎn)換為數(shù)字字符串str2num—將數(shù)字字符串轉(zhuǎn)換為數(shù)字mat2str—將數(shù)組轉(zhuǎn)換成字符串int2str—把數(shù)值數(shù)組轉(zhuǎn)換為整數(shù)數(shù)字組成的字符數(shù)組7.其他字符串操作函數(shù)strcmp—比較兩個(gè)字符串是否完全相等,是,返回真,否則,返回假strn
8、cmp—比較兩個(gè)字符串前n個(gè)字符是否相等,是,返回真,否則,返回假strcmpi—比較兩個(gè)字符串是否完全相等,忽略字母大小寫strncmpi—比較兩個(gè)字符串前n個(gè)字