版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第五章字符串和其他數(shù)據(jù)類型中常用數(shù)值數(shù)組(Numeric Array),本章將介紹其它幾種前面介紹了數(shù)據(jù)類型:字符串類型(Character String Array)、元胞數(shù)組(Cell Array)和結(jié)構(gòu)體數(shù)組(Structure Array)。51 字符串及其處理511 字符串的基本操作在一個元素進(jìn)行s=student s =student工作空間中,字符串是以向量形式來的,所以可以通過它的下標(biāo)對字符串中的任何。中的字符串用單引號來定義,例如這樣工作空間中就有一個字符串變量,變量名稱 s,變量值student,變量類型 char。字符串可以象數(shù)據(jù)矩陣一樣來連接。用于數(shù)據(jù)矩陣的求長度和大小
2、的函數(shù) length()和 size()亦可以用來求字符串的長度和大小。而且,冒號表達(dá)式的使用和在數(shù)據(jù)矩陣中的使用情況完全相同。如: name=Mary;s=student; s1=name s s1 = Marystudent s3=name bls(3);s% 各行元素的列數(shù)必須相同,故使用 bls()函數(shù)第一行補了三個空格, bls()函數(shù)的用法詳見 5.1.2s3 = Mary student再如: s2=name, is a good ,s,. s2 =Mary is a good student. length(s1) ans =11 size(s3) ans =%求字符串的長度2
3、7 name1=s1(1:5) name1 =Marys注意:長字符串可以采用分段表示的方法。例 keep=.I went to work by bicycle,while my students went to school by foot keep =I went to work by bicycle,while my students went to school by foot512 字符串函數(shù)23在和表 5.2。命令窗口中鍵入 help strfun,可以得到一些字符串的轉(zhuǎn)換函數(shù)和操作函數(shù),分別見表 5.1表 5.1字符串轉(zhuǎn)換函數(shù)例:fprf,sprf,sscanf 的用法示例。 r
4、and(se,0);a=rand(2,2);產(chǎn)生 22 隨機陣 ss=sprf(%.10en,a) ss =9.5012928515e-0012.3113851357e-0016.0684258354e-001%10 位數(shù)科學(xué)計數(shù)串,每寫一個元素?fù)Q一行4.e-001 fprf(%.5g,a)%以 5 位數(shù)位最短形式顯示0.950130.231140.606840.48598 ssca=sscanf(ss,%f,3,2)ssca =浮點格式把串轉(zhuǎn)換成(32)矩陣0.95010.23110.60680.486000 A=1 1 3;2 4 7;mat2str(A)ans =1 1 3;2 4 7表
5、 5.2字符串操作函數(shù)24指 令含義指 令含義bls(n)創(chuàng)建 n 個空格串lower(s)使 s 里的英文字母全部小寫char(s1,s2,)把串 s1,s2 等逐個寫成行,形成多行數(shù)值str2mat(s1,s2,)把串 s1,s2 等逐個寫成行,形成多行數(shù)值,并刪去全空行debl(s)刪去串尾部的空格符strcat(s1,s2,)把串 s1,s2 等連接成長串eval(s)把串 s 當(dāng)作指令運行strcmp(s1,s2)若串 s1,s2 相同,則判為真,給出邏輯 1eval(s1,sc)把串 s1 當(dāng)作指令運行,如 s1 發(fā)生錯誤,則運行 scstrjust(s)字符串的對齊方式:右對齊、
6、左對齊或?qū)χ衒eval(f,x,y,)對輸入量 x,y 等計算函數(shù) fstrmatch(s1,s2)逐行串 s2,給出以串 s1 開頭的行的行號指令含義指令含義abs把串翻譯成 ASCII 碼hex2dec16 進(jìn)制串轉(zhuǎn)換為十進(jìn)制整數(shù)bin2dec二進(jìn)制串轉(zhuǎn)換為十進(jìn)制整數(shù)hex2num16 進(jìn)制串轉(zhuǎn)換為浮點數(shù)str2num把串轉(zhuǎn)換為數(shù)值2str整數(shù)轉(zhuǎn)換為串dec2base十進(jìn)制整數(shù)轉(zhuǎn)換為 X 進(jìn)制串mat2str把數(shù)值矩陣轉(zhuǎn)換為 eval 可調(diào)用的格式dec2bin十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制串num2str把數(shù)值轉(zhuǎn)換為串dec2hex十進(jìn)制整數(shù)轉(zhuǎn)換為 16 進(jìn)制串setstr把 ASCII 碼翻譯
7、為串double把任何類型數(shù)據(jù)轉(zhuǎn)換為雙精度數(shù)值sprf以控制格式把數(shù)值轉(zhuǎn)化為串fprf把格式化數(shù)據(jù)寫到文件或屏幕sscanf以控制格式把串轉(zhuǎn)化為數(shù)str2double把串轉(zhuǎn)換為雙精度數(shù)值例: name=upper(name =) fun=strrep(hahaha,a,i) fun =hihihi text=. Monday,Tuesday,Wednsday,.; day,rest=strtok(text,) day =Monday rest =,Tuesday,Wednsday,. day,rest=strtok(text,a) day =Mond rest =ay,Tuesday,Wedn
8、sday,.%找出第一個 a 字母之前的內(nèi)容 A=1 1 3;2 4 7;text1=ResultMatrix=;text2=mat2str(A); restext=strcat(text1,text2) restext =ResultMatrix=1 1 3;2 4 752 元胞數(shù)組前面所提到的矩陣和數(shù)組中,所有元素的數(shù)據(jù)類型都是相同的。中的元胞數(shù)組(有人亦稱之為元胞或細(xì)胞數(shù)組等)支持復(fù)合數(shù)據(jù)類型的矩陣和數(shù)組。其內(nèi)部不同的位置可以有不同的數(shù)據(jù)類型。這是它與由數(shù)據(jù)或字符的普通數(shù)組的不同之處。元胞數(shù)組可以是一維的,也可以是的,其方式和普通數(shù)組類似,但其生成方式和普通數(shù)組的生成方式是不相同。521
9、 元胞數(shù)組的生成和顯示對于元胞數(shù)組來說,元胞和元胞內(nèi)的內(nèi)容是兩個不同范疇的東西。因此尋訪元胞和尋訪元胞中的內(nèi)容是兩種不同的操作。因此,設(shè)計了兩種不同的操作:元胞外標(biāo)識和元胞內(nèi)編址。對外標(biāo)識元胞元素的操作采用“圓括號”;而對編址元胞元素內(nèi)涵的操作采用“花括號”。例: C_str=char(這是,元胞數(shù)組生成顯示算例);%生成字符串 R=resh(1:9,3,3);%生成(33)實矩陣 S_sym=sym(sin(4*t)*exp(-2*t);%生成符號函數(shù)量25findstr(s1,s2)在較長串中,找出短串的起始字符的下標(biāo)strncmp(s1,s2,n)若串 s1,s2 的前 n 個字符相同,
10、則判為真,給出邏輯 1ischar(s)s 是字符串,則判為真,給出邏輯 1strrep(s1,s2,s3)將串s1 中所有出現(xiàn)s2 的地方替換為 s3isletter(s)以邏輯1 指示s 里文字符的位置strtok(s)找出第一個間隔符(空格、制表位、回車符)前的內(nèi)容isspa)以邏輯1 指示s 里空格符的位置strvcat(s1,s2,)把串 s1,s2 等逐個寫成行,形成多行數(shù)值lasterr發(fā)出的最新錯誤信息upper(s)使 s 里的英文字母全部大寫 Cn=1+2i;% 生成復(fù)數(shù)外標(biāo)識元胞元素賦值法: A(1,1)=C_str;A(1,2)=R;A(2,1)=Cn;A(2,2)=S
11、_sym; AA =%顯示元胞數(shù)組2x10 char1.0000+ 2.0000i3x3 double1x1 sym編址元胞元素內(nèi)涵的直接賦值法: B1,1=C_str;B1,2=R;B2,1=Cn;B2,2=S_sym; celldisp(B) B1,1 =這是%顯示 B, celldisp 是顯示元胞全部或部分內(nèi)容的指令。元胞數(shù)組生成顯示算例B2,1 =1.0000 + 2.0000i B1,2 =123B2,2 =475689sin(4*t)*exp(-2*t)522 元胞數(shù)組的擴充、收縮和重組元胞數(shù)組的擴充、收縮和重組的方法大致與普通數(shù)組的情況相同。一、元胞數(shù)組的擴充例: C=cell
12、(2);%用 cell 指令預(yù)設(shè)(22)空元胞數(shù)組 C(:,1)=char(Another,Example);10:-1:1C =%對第一列元胞賦值2x7char1x10 double AC=A C,A_C=A;C AC =2x10 char 1.0000+ 2.0000iA_C =2x10 char 1.0000+ 2.0000i2x7char 1x10 double二、元胞數(shù)組的收縮 例: A_C(3,:)=% A_C =2x10 char1.0000+ 2.0000i% 元胞數(shù)組的行、列擴充3x3 double2x7char1x10 double1x1 sym3x3 double1x1
13、sym刪除第三行,使 A_C 成為(32)的元胞數(shù)組3x3 double1x1 sym261x10 double三、元胞數(shù)組的重組例: R_A_C=resh R_A_C =2x10 char1.0000+ 2.0000i(A_C,2,3)1x10 double3x3double1x1 sym523 元胞數(shù)組內(nèi)容的調(diào)用例: f1=R_A_C(1,3)%使用圓括號尋訪得到的是元胞 f1 =1x1 sym class(f1) ans =cell例: f2=R_A_C1,3%使用花括號尋訪得到的是元胞內(nèi)容 f2 =sin(4*t)*exp(-2*t) class(f2) ans =sym例: f3=R
14、_A_C1,1(:,1 2 5 6)%取元胞內(nèi)的子數(shù)組 f3 =這是元胞生成例: f4,f5,f6=deal(R_A_C1,3,4)% 同時調(diào)用多個元胞內(nèi)容f4 =這是單元數(shù)組生成顯示算例f5 =10987654321f6 =12345678953 結(jié)構(gòu)體數(shù)組的程序設(shè)計語言中大都支持結(jié)構(gòu)體變量,也支持結(jié)構(gòu)體變量。與元胞數(shù)組一樣,結(jié)構(gòu)體數(shù)組也可以在一個數(shù)組中存放各種數(shù)據(jù)類型,它是某些具有某種相關(guān)性的集合體,它使一系列相關(guān)集合到一個的結(jié)構(gòu)之中,從而使這些能夠被有效地管理、組織和調(diào)用。從某種意義上講,結(jié)構(gòu)體數(shù)組組織數(shù)據(jù)的能力比元胞數(shù)組更強,且其生成與使用都非常容易、直觀。在中,結(jié)構(gòu)體是按照域的方式生
15、成與其中的每個的。一個域中可以包含任何支持的數(shù)據(jù)類型,如雙精度數(shù)值、字符、元胞數(shù)組及結(jié)構(gòu)體等類型。531 結(jié)構(gòu)體數(shù)組的生成與顯示結(jié)構(gòu)體生成方式:struct_name(record_number).field_name=data;如某個班級學(xué)生花名冊的建立:27 student(1).name=li li; student(1).number=609510; student(2).name=Wang Hong; student(2).number=609511; student(3).name=zhang Liang; student(3).number=609512; student(4).
16、name=zhao Qi; student(4).number=609513;student 是具有 4 個結(jié)構(gòu)變量的向量,表示某個班級所有 4 個同學(xué)的和學(xué)號。 studentstudent =%顯示結(jié)構(gòu)體1x4 struct array with fields: namenumber532 結(jié)構(gòu)體數(shù)組的調(diào)用和設(shè)置由于結(jié)構(gòu)體數(shù)組的域是存放數(shù)據(jù)的場所,因此,在調(diào)用結(jié)構(gòu)體和設(shè)置結(jié)構(gòu)體數(shù)組中數(shù)據(jù)的前提是“事先知道”。用戶可以直接在命令窗口中鍵入結(jié)構(gòu)體名稱來查找,亦可以采用提供的fieldnames 指令來獲得數(shù)據(jù)的調(diào)用和設(shè)置。就可以利用 getfield 和 setfield 指令實現(xiàn)對結(jié)構(gòu)體。一
17、旦有了,fieldnames、getfield 和 setfield 指令的基本使用格式是:FN=fieldnames(S_n)獲得結(jié)構(gòu)體FC=getfield(S_n,S_index,f_name,f_index)獲得結(jié)構(gòu)體域中的內(nèi)容S_n=setfield(S_n,S_index,f_name,f_index,value)設(shè)置結(jié)構(gòu)體域中的內(nèi)容例: FN=fieldnames(student) FN =namenumber% 獲得結(jié)構(gòu)體的例:結(jié)構(gòu)體變量的調(diào)用可以采用兩種方式,簡單的方法是 student(2).name ans =Hong亦可采用提供的 getfield 指令,針對本例,有
18、FC=getfield(student,2,name) FC =Wang Hong%獲得結(jié)構(gòu)體中第二條為name的內(nèi)容,例:對結(jié)構(gòu)體數(shù)據(jù)的設(shè)置需采用 setfield 指令,如 student=setfield(student,2,name,li wei) weistudent =1x4 struct array with fields: namenumber%將結(jié)構(gòu)體中第二條為name的內(nèi)容改為li FC=getfield(student,2,name)%顯示結(jié)構(gòu)體中第二條FC =為name的內(nèi)容已更改28li wei533 結(jié)構(gòu)體數(shù)組的擴充與收縮 student(5).number=609514; student(5).name=han yi; student student =1x5 struct array with fields: %擴充為(15)的結(jié)構(gòu)體 namenumber student(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024建筑分包合同范本
- Squalene-Standard-生命科學(xué)試劑-MCE
- SMU101-生命科學(xué)試劑-MCE
- 2022年國防教育拓展訓(xùn)練參考心得體會5篇參考參考范文
- 工業(yè)園區(qū)供水保障項目可行性報告
- 高中學(xué)生宿舍樓建設(shè)項目建設(shè)管理方案
- 變電站升級改造項目的可行性分析
- 生物化學(xué)(校級精+品課程建設(shè)項目)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 工程力學(xué)(教學(xué)用)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 實驗室安全與防護(hù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024-2025學(xué)年七年級英語上學(xué)期期中試卷(滬教五四制2024)(含答案)
- 2024-2025學(xué)年高中政治上學(xué)期《新時代的勞動者》教學(xué)設(shè)計
- 幼兒園故事繪本《賣火柴的小女孩兒》課件
- 10以內(nèi)口算題每頁50道
- 《短視頻拍攝與制作》課件-3短視頻中期拍攝
- 護(hù)理領(lǐng)導(dǎo)力培養(yǎng)護(hù)士的領(lǐng)導(dǎo)潛能培訓(xùn)課件
- Linux操作系統(tǒng)應(yīng)用(麒麟系統(tǒng))PPT完整全套教學(xué)課件
- 印刷業(yè)管理條例-2020
- 中國聯(lián)通某分公司網(wǎng)格化管理工作指導(dǎo)意見
- 充電樁施工方案
- 110KV變電站設(shè)計畢業(yè)論文.doc
評論
0/150
提交評論