資源描述:
《通信系統(tǒng)中的軟件仿真ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第三講 字符串、單元數(shù)組和結(jié)構(gòu)數(shù)組數(shù)組類型基本組分組分內(nèi)涵基本組分占用字節(jié)數(shù)數(shù)值數(shù)組元素雙精度實數(shù)標(biāo)量或雙精度復(fù)數(shù)標(biāo)量816字符串元素字符2單元數(shù)組單元可以存放任何類型、任何大小的數(shù)據(jù)。不定結(jié)構(gòu)數(shù)組結(jié)構(gòu)只有掛接在結(jié)構(gòu)上的“域”才能存放數(shù)據(jù)。數(shù)據(jù)可以是任何類型、任何大小。不定字符串?dāng)?shù)組單元數(shù)組結(jié)構(gòu)數(shù)組稀疏矩陣關(guān)于數(shù)據(jù)類型的歸納性說明字符串?dāng)?shù)組字符串?dāng)?shù)組簡稱串?dāng)?shù)組。字符串?dāng)?shù)組的作用:沒有串?dāng)?shù)組及相應(yīng)的操作,那么數(shù)據(jù)可視化、圖形用戶界面GUI的制作將會遇到困難,構(gòu)作MATLAB的宏指令也將會遇到困難。字符變量的創(chuàng)建方式:在指令窗中,先把待建的字符放在“單引號對”
2、中,再按[Enter]鍵。注意:“單引號對”必須在英文狀態(tài)下輸入,其作用是MATLAB識別送來內(nèi)容“身份”(是變量名、數(shù)字,還是字符串)所必需的,字符串是以ASCII形式存儲的。數(shù)字標(biāo)量在內(nèi)存中存放時需要8個字節(jié)(Byte),而一個字符的存放只需2個字節(jié)。串?dāng)?shù)組的屬性和標(biāo)識復(fù)雜串?dāng)?shù)組的創(chuàng)建串轉(zhuǎn)換函數(shù)串操作函數(shù)串?dāng)?shù)組的屬性和標(biāo)識演示:串的基本屬性、標(biāo)識和簡單操作。創(chuàng)建串?dāng)?shù)組串?dāng)?shù)組的大小串?dāng)?shù)組的元素標(biāo)識串?dāng)?shù)組的ASCII碼對字符串ASCII碼數(shù)組的操作中文字符串?dāng)?shù)組創(chuàng)建帶單引號的字符串由小串構(gòu)成長串【例1】本例演示:串的基本屬性、標(biāo)識和簡單操作。(1)創(chuàng)建串?dāng)?shù)
3、組a='Thisisanexample.'a=Thisisanexample.(2)串?dāng)?shù)組a的大小size(a)ans=119(3)串?dāng)?shù)組的元素標(biāo)識a14=a(1:4)%提出一個子字符串ra=a(end:-1:1)%字符串的倒排a14=Thisra=.elpmaxenasisihT(4)串?dāng)?shù)組的ASCII碼ascii_a=double(a)%產(chǎn)生ASCII碼ascii_a=Columns1through1984104105115321051153297110321011209710911210810146char(ascii_a)%把ASCII碼變回字符串
4、ans=Thisisanexample.(5)對字符串ASCII碼數(shù)組的操作w=find(a>=‘a(chǎn)’&a<=‘z’);%找出串?dāng)?shù)組a中,小寫字母的元素位置ascii_a(w)=ascii_a(w)-32;%大小寫字母ASCII值差32,用數(shù)值加法改變部分碼值char(ascii_a)%把新的ASCII碼翻成字符ans=THISISANEXAMPLE.復(fù)雜串?dāng)?shù)組的創(chuàng)建多行串?dāng)?shù)組的直接創(chuàng)建利用串操作函數(shù)創(chuàng)建多行串?dāng)?shù)組轉(zhuǎn)換函數(shù)產(chǎn)生數(shù)碼字符串多行串?dāng)?shù)組的直接創(chuàng)建在直接創(chuàng)建多行串?dāng)?shù)組時,關(guān)鍵是要保證同一串?dāng)?shù)組的各行字符數(shù)要相等,即保證各行等長。為此,有時不得不通過
5、空格符的增減來調(diào)節(jié)各行的長度,使它們彼此相等。例:S=['Thisstringarray''hasmultiplerows.']增加一空格使兩行長度相等利用串操作函數(shù)創(chuàng)建多行串?dāng)?shù)組用專門函數(shù)char,str2mat,strvcat創(chuàng)建多行串?dāng)?shù)組示例。Char:創(chuàng)建字符傳輸組或?qū)⑵渌愋妥兞哭D(zhuǎn)化為字符串?dāng)?shù)組str2mat:將字符串轉(zhuǎn)換為含有空格的數(shù)組Strvcat:創(chuàng)建字符串?dāng)?shù)組這三個函數(shù)創(chuàng)建多行數(shù)組時,不必?fù)?dān)心每行字符數(shù)是否相等。它們總會按最長行設(shè)置第二維的長度,其他行的尾部用空格填充。轉(zhuǎn)換函數(shù)產(chǎn)生數(shù)碼字符串最常用的數(shù)組/字符串轉(zhuǎn)換函數(shù)int2str,nu
6、m2str,mat2str示例。int2str:將整數(shù)轉(zhuǎn)換為字符串num2str:把數(shù)值轉(zhuǎn)換為字符串mat2str:將數(shù)組轉(zhuǎn)換為字符串串轉(zhuǎn)換函數(shù)指令含義指令含義abs把串翻譯成ASCII碼hex2dec16-進(jìn)制串轉(zhuǎn)換為十進(jìn)制整數(shù)base2decX-進(jìn)制串轉(zhuǎn)換為十進(jìn)制整數(shù)hex2num16-進(jìn)制串轉(zhuǎn)換為浮點數(shù)bin2dec二進(jìn)制串轉(zhuǎn)換為十進(jìn)制整數(shù)int2str把整數(shù)轉(zhuǎn)換為串char把ASCII碼及其他非數(shù)值類數(shù)據(jù)轉(zhuǎn)換成字符串mat2str把數(shù)值矩陣轉(zhuǎn)換為eval可調(diào)用的格式dec2base十進(jìn)制整數(shù)轉(zhuǎn)換為X進(jìn)制串num2str把數(shù)值轉(zhuǎn)換為串dec2bin十
7、進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制串setstr把ASCII碼翻譯成串dec2hex十進(jìn)制整數(shù)轉(zhuǎn)換為十六進(jìn)制串sprintf以控制格式把數(shù)值轉(zhuǎn)換為串double把任何類型數(shù)據(jù)轉(zhuǎn)換成雙精度數(shù)值sscanf在控制格式下把串轉(zhuǎn)換為數(shù)值fprintf把格式化數(shù)據(jù)寫到文件或屏幕str2num把串轉(zhuǎn)換為數(shù)值串操作函數(shù)(一)指令含義blanks(n)創(chuàng)建n個空格串char(s1,s2,…)把串s1,s2等逐個寫成行,形成多行數(shù)組deblank(s)刪去串尾部的空格符eval(s)把串s當(dāng)作MATLAB指令運行eval(s1,sc)把串s1當(dāng)作MATLAB指令運行。若s1運行發(fā)生錯誤,
8、則運行scfeval(f,x,y,…)對輸入宗量x,y等計算函數(shù)f