資源描述:
《《Matlab字符數(shù)組》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、字符數(shù)組CharacterArray(CharArray)一、創(chuàng)建字符數(shù)組二、字符數(shù)組的操作三、字符串和數(shù)值之間的轉(zhuǎn)換函數(shù)四、不同數(shù)制之間的轉(zhuǎn)換函數(shù)在MATLAB中,字符串(string)是作為字符數(shù)組來(lái)引入的。字符串按行向量進(jìn)行存儲(chǔ),每一字符以其在字符集中的內(nèi)部編碼的形式存放。1、用單引號(hào)對(duì)‘’創(chuàng)建字符串(一維字符數(shù)組)s1=''%生成一個(gè)空字符串s2='M's3='MathWorks's4='Acceleratingthepaceofengineeringandscience's5='You''reright!'s6='矩陣實(shí)驗(yàn)室'必須將待建字符串放在單引號(hào)對(duì)中;每個(gè)字符占
2、一個(gè)元素位,兩個(gè)字節(jié);當(dāng)字符串中本身包含單引號(hào)時(shí),每個(gè)單引號(hào)符用連續(xù)的兩個(gè)單引號(hào)表示;注意:必須在英文狀態(tài)下輸入“單引號(hào)對(duì)”。一、創(chuàng)建字符數(shù)組2、使用內(nèi)部編碼創(chuàng)建字符串s=char(x)用字符的內(nèi)部編碼x創(chuàng)建相應(yīng)的字符數(shù)組s,x為非負(fù)整數(shù)數(shù)組,實(shí)際的字符顯示和給定的字符編碼有關(guān)。x的范圍為從0到65535,任何在此范圍外的數(shù)據(jù)都沒(méi)有定義。字符編碼的前128個(gè)編碼即為ASCII碼s1=char()%生成空字符串s2=char(97)s3=char(97:122)s4=char([97:122;65:90])x=19968:19968+99X=reshape(x,10,10)X=X
3、's=char(X)附:ASCII碼表(7位)高三位b6b5b4低四位b3b2b1b0獲取字符數(shù)組的內(nèi)部編碼x=double(s)或x=abs(s)把字符數(shù)組s轉(zhuǎn)換為對(duì)應(yīng)的內(nèi)部編碼數(shù)值數(shù)組x??梢詫?duì)內(nèi)部編碼數(shù)值數(shù)組x進(jìn)行數(shù)值數(shù)組的各種運(yùn)算。但其結(jié)果就變成一般數(shù)值向量的運(yùn)算,而不再是字符串的運(yùn)算,可使用char()函數(shù)把運(yùn)算結(jié)果轉(zhuǎn)化為對(duì)應(yīng)字符串。t='matlab'x=double(t)-32s=char(x)miwen='Rfyqfg%2%Ymj%Qfslzflj%Tk%Yjhmsnhfq%Htruzynsl'愷撒密碼凱撒密碼作為一種最為古老的對(duì)稱(chēng)加密體制,在古羅馬的時(shí)候都已經(jīng)
4、很流行,它的基本思想是:通過(guò)把字母移動(dòng)一定的位數(shù)來(lái)實(shí)現(xiàn)加密和解密。例如,如果密匙是把明文字母的位數(shù)向后移動(dòng)三位,那么明文字母B就變成了密文的E,依次類(lèi)推,X將變成A,Y變成B,Z變成C,由此可見(jiàn),位數(shù)就是凱撒密碼加密和解密的密鑰。這個(gè)加密方法是以愷撒的名字命名的,當(dāng)年愷撒曾用此方法與其將軍們進(jìn)行聯(lián)系。練習(xí):上面的密文是將明文的每個(gè)字符(包括字母、空格、符號(hào))按acsii碼表后移5位得到的,請(qǐng)破譯這段密文。3、用[,]創(chuàng)建字符串(一維字符數(shù)組)利用方括號(hào)[],可將多個(gè)字符串變量用逗號(hào)“,”連接,構(gòu)成一個(gè)長(zhǎng)的單行字符串。t1='';t2='MATLAB-';t3='TheLangu
5、ageOfTechnicalComputing';t4='科學(xué)計(jì)算語(yǔ)言';s1=[t1,t2,t3]s2=[t2,t3]s3=[t1,t2,t4]s4=[t2,t1,t4]4、用[;]創(chuàng)建多行(二維)字符數(shù)組t1='Hello,';t2='Nicetomeetyou!';s=[t1;t2]???Errorusing==>vertcatCATargumentsdimensionsarenotconsistent.利用方括號(hào)[],可將多個(gè)字符串變量用分號(hào)“;”連接,構(gòu)成一個(gè)多行字符串(二維字符數(shù)組),但是必須保證各行等長(zhǎng)(每行的字符數(shù)目相等)。解決辦法:必須保證各行等長(zhǎng),可在較短字
6、符串的末尾增加適當(dāng)數(shù)量的“空格”。錯(cuò)誤原因:t16個(gè)字符t217個(gè)字符t1='Hello,';t2=blanks(11);t3='';t4='Nicetomeetyou!';s1=[t1,t2;t4]s2=[t1,t2;t3;t4]s=blanks(n):生成一個(gè)包含n個(gè)空格的字符串ss1=Hello,Nicetomeetyou!s2=Hello,Nicetomeetyou!空字符串會(huì)被忽略掉5、利用函數(shù)創(chuàng)建字符數(shù)組t1='Hello,';t2='';t3='Nicetomeetyou!';s1=char(t1,t3)s2=char(t1,t2,t3)s1=Hello,Nice
7、tomeetyou!s2=Hello,Nicetomeetyou!S=char(t1,t2,t3,...)把t1,t2,t3,...作為行,空字符串不會(huì)被忽略,生成二維字符數(shù)組S,不必考慮每行的字符數(shù)是否相等,S的行數(shù)等于t1,t2,...的行數(shù)之和,S的列數(shù)等于最長(zhǎng)的字符串的字符數(shù)目,較短字符串的末尾用空格補(bǔ)齊。每個(gè)字符參數(shù)ti,本身是字符數(shù)組。t1='Hello,';t2='';t3='Nicetomeetyou!';s1=str2mat(t1,t3)s2=str2mat(t1,t2,t