資源描述:
《matlab04matlab編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、字符與字符串字符與字符串運(yùn)算是各種高級語言不可缺少的部分,Matlab具有強(qiáng)大的字符處理能力。關(guān)于字符串的約定:所有字符串必須用單引號括起來;在Matlab中,字符串和字符數(shù)組(矩陣)基本上是等價(jià)的;Matlab數(shù)據(jù)類型(二)1例:Matlab數(shù)據(jù)類型2字符串的每個(gè)字符(包括空格)都是字符串的一個(gè)元素;字符串中的字符以ASCII碼存儲(chǔ),因而大小寫是有區(qū)別的,可用abs函數(shù)查看一個(gè)字符的ASCII碼。size函數(shù)可用來查看字符數(shù)組的維數(shù)Matlab數(shù)據(jù)類型3字符串的生成直接用單引號賦值,例:s3=‘Ma
2、tlab’使用char函數(shù)把數(shù)字按照ASCII碼轉(zhuǎn)換為字符串。Matlab數(shù)據(jù)類型4字符串與數(shù)組之間的轉(zhuǎn)換字符串轉(zhuǎn)換為數(shù)值代碼:abs,double數(shù)值數(shù)組轉(zhuǎn)換為字符串:char,num2str,int2str,mat2str,把數(shù)字直接轉(zhuǎn)換為字符串,每個(gè)數(shù)字為一個(gè)獨(dú)立的字符串。把數(shù)字取整后轉(zhuǎn)換為字符串,注意和num2str的區(qū)別。把矩陣轉(zhuǎn)換為一個(gè)字符串,方括號、分號和空格都是其元素。Matlab數(shù)據(jù)類型5例:數(shù)值數(shù)組轉(zhuǎn)換為字符數(shù)組后,表面上看形式相同,但此時(shí)的元素是字符而不是數(shù)字!若要使字符數(shù)組能
3、夠進(jìn)行數(shù)值計(jì)算,需先將其轉(zhuǎn)換為數(shù)值數(shù)組!Matlab數(shù)據(jù)類型6str2num:將字符數(shù)組轉(zhuǎn)換為數(shù)值數(shù)組abs,double,char按照ASCII碼轉(zhuǎn)換;num2str,int2str,mat2str,str2num直接轉(zhuǎn)換。Matlab數(shù)據(jù)類型7字符串的連接水平連接:strcat或中括號中用逗號連接在中括號中直接水平連接,結(jié)果中包括原字符串結(jié)尾處的空格。用strcat連接,結(jié)果中忽略原字符串結(jié)尾處的空格。水平連接得到的是一個(gè)更長的字符串。Matlab數(shù)據(jù)類型8字符串的連接垂直連接:strvcat或中
4、括號中用分號連接在中括號中用分號實(shí)現(xiàn)垂直連接,必須保證每個(gè)被連接的字符串長度相等,否則需用空格補(bǔ)齊。用strvcat連接,自動(dòng)為較短的字符串補(bǔ)足空格。垂直連接得到的是一個(gè)字符串?dāng)?shù)組。Matlab數(shù)據(jù)類型9執(zhí)行字符串:evalMatlab數(shù)據(jù)類型10字符串的其它相關(guān)常用函數(shù)注:可參見C語言中字符串操作的相關(guān)函數(shù)函數(shù)功能函數(shù)功能strcmp比較字符串strrep替換字符串strcmpi忽略大小寫比較字符串upper轉(zhuǎn)換為大寫strncmp比較字符串的前n個(gè)字符lower轉(zhuǎn)換為小寫findstr在一個(gè)字符串
5、中查找另一個(gè)字符串strtok返回字符串中第一個(gè)分隔符(空格,回車和Tab鍵)前的部分strjust對齊字符數(shù)組,包括左對齊,右對齊和居中blanks產(chǎn)生空字符串strmatch查找匹配的字符串deblank刪除字符串中的空格Matlab數(shù)據(jù)類型11細(xì)胞變量(細(xì)胞數(shù)組)cellMatlab從5.0版開始引入了一種新的數(shù)據(jù)類型---細(xì)胞(cell),該結(jié)構(gòu)把不同屬性的數(shù)據(jù)納入到一個(gè)變量中。細(xì)胞變量的表示方法類似于帶有下標(biāo)的數(shù)組,但這些下標(biāo)不是用圓括號括起來,而是用大括號括起來。Matlab數(shù)據(jù)類型普通數(shù)
6、組中的每個(gè)元素都必須具有相同的屬性,而細(xì)胞則沒有此要求。12例:Matlab數(shù)據(jù)類型13細(xì)胞變量的定義可以通過以下兩種方式定義一個(gè)細(xì)胞變量:用賦值語句直接定義;由cell函數(shù)預(yù)先分配存儲(chǔ)空間,然后對細(xì)胞的每個(gè)元素逐個(gè)賦值。Matlab數(shù)據(jù)類型14Matlab數(shù)據(jù)類型15細(xì)胞變量可以嵌套定義Matlab數(shù)據(jù)類型16細(xì)胞變量的元素的引用Matlab數(shù)據(jù)類型17細(xì)胞變量的相關(guān)操作函數(shù)函數(shù)功能cell生成細(xì)胞變量celldisp顯示細(xì)胞變量的內(nèi)容cellplot圖形顯示細(xì)胞變量的內(nèi)容num2cell將數(shù)值數(shù)組
7、轉(zhuǎn)換成細(xì)胞變量iscell判別是否為細(xì)胞變量18習(xí)題1任意給出一個(gè)英語句子,請?zhí)崛∑渲械膯卧~,并設(shè)計(jì)一個(gè)結(jié)構(gòu),其域有Name、no、length、value,分別用于存儲(chǔ)每個(gè)單詞的名稱、句中序號、單詞長度、單詞各字符的ASCII碼之和,寫入文件result1.txt中。Name、no、length、valueI1156Am2215019習(xí)題2為說明字符串的應(yīng)用,設(shè)計(jì)MATLAB程序?qū)Ρ4嬖谖募械奈谋綽ugs.txt進(jìn)行處理,要求:(1)統(tǒng)計(jì)文件中字符串'error'出現(xiàn)的次數(shù)。(2)將文件中的字符串
8、'error'修改成'Error'。(3)統(tǒng)計(jì)文件中字符('a','b','t')出現(xiàn)的次數(shù)及頻度。(4)統(tǒng)計(jì)文件中單詞(‘the’,‘a(chǎn)nd’)出現(xiàn)的次數(shù)。(1)(2)(4)結(jié)果存入到result2.txt20