




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章 單元數(shù)組與結(jié)構(gòu)數(shù)組,3.1 字符串?dāng)?shù)組,3.2 單元數(shù)組,3.3 結(jié)構(gòu)數(shù)組,3.4 綜合實(shí)例,3.1 字符串?dāng)?shù)組,3.1.1 串?dāng)?shù)組的生成,1直接輸入法 直接用單引號(hào)輸入,例如: Book=MATLAB 7.14 (R2012a)基礎(chǔ) 顯示的結(jié)果為: Book = MATLAB 7.14 (R2012a)基礎(chǔ),若在單引號(hào)外加大括號(hào)也可以顯示字符串,例如: S=數(shù)組計(jì)算 S = 數(shù)組計(jì)算 從結(jié)果來(lái)看,顯示的內(nèi)容有單引號(hào)標(biāo)示,而單引號(hào)法顯示的卻只是文本。,2利用命令disp法 格式 disp(S) %S是字符串,顯示出S的文本 例如: disp(Book) 顯示的結(jié)果為: MATLAB 7
2、.14 (R2012a)基礎(chǔ),3利用命令char法 格式 char(S) %S是字符串,顯示出S的文本 例如: char(MATLAB工具箱) ans = MATLAB工具箱,首頁(yè),4利用命令input法 格式 input(out,in) %顯示出字符串out的文本并等待終端的輸入,in可缺省 如果變量in是s,則輸入的內(nèi)容以字符串的形式進(jìn)行保存。,例如,在命令窗口中輸入: x=input(Give a number x:) 顯示的結(jié)果為: Give a number x: 然后在“x::”的后面輸入一個(gè)數(shù),不妨為6,回車即得: x = 6 此時(shí)數(shù)值6以變量x的形式顯示在Workspace工作
3、空間內(nèi)。,若執(zhí)行如下命令: x=input(Give a number x:,s) Give a number x:6 x = 6 此時(shí)數(shù)字6以字符串的形式保存在Workspace工作空間內(nèi)。,5在字符串中用兩個(gè)單引號(hào)來(lái)表示一個(gè)單引號(hào) Its a reference book. ans = Its a reference book.,3.1.2 串?dāng)?shù)組的訪問(wèn)和大小,1串?dāng)?shù)組的訪問(wèn) 字符串的存儲(chǔ)是按其中字符逐個(gè)順序單一存放的,且存放的是字符的內(nèi)部代碼ASCII碼。當(dāng)在屏幕上顯示字符變量的值時(shí),顯示出來(lái)的是文本,而不是ASCII數(shù)字。由于字符串是以向量的形式來(lái)存儲(chǔ)的,所以可以通過(guò)它的下標(biāo)對(duì)字符串中
4、的任何一個(gè)元素進(jìn)行訪問(wèn)。 例如,對(duì)上面定義的字符串Book,輸入命令: Book(14:19) ans = R2012a,3字符串的查找 在字符串中尋找某個(gè)字符串可用函數(shù)findstr來(lái)實(shí)現(xiàn)。 格式 findstr(S1,S2) %S1、S2都為字符串,表示在較長(zhǎng)的字符串中 查找較短的字符串出現(xiàn)的次數(shù),并返回其位置,2字符串的長(zhǎng)度 一個(gè)字符串的長(zhǎng)度可用length和size函數(shù)來(lái)確定大小。例如: length(Book) ans = 22 size(Book) ans = 1 22,例如,在上面定義的字符串Book中查找A所在的位置: findstr(Book,A) ans = 2 5 fin
5、dstr(A,Book) ans = 2 5 注:字符串和要查找的字符串的位置可以互換,結(jié)果相同。因此,無(wú)論S1、S2哪個(gè)為長(zhǎng)字符串,位置在前在后都沒(méi)有關(guān)系。,3.1.3 多行串?dāng)?shù)組的創(chuàng)建,首頁(yè),1多行串?dāng)?shù)組的直接輸入 字符串?dāng)?shù)組可以是多行多列的數(shù)組,但必須保證每一行都有相同的列數(shù)。若字符串長(zhǎng)度不一樣,需要用空格填充,保證所有行的長(zhǎng)度都相同。例如: S1=This string array;has two rows. %使用矩陣產(chǎn)生法,第二行后面需加4個(gè)空格 S1 = This string array has two rows.,2利用串操作函數(shù)創(chuàng)建多行串?dāng)?shù)組 利用函數(shù)char、strvca
6、t 創(chuàng)建多行串?dāng)?shù)組,每行的字符串長(zhǎng)度可以不同。例如: S1=char(This string array,has two rows.) S1 = This string array has two rows. S2=strvcat(創(chuàng)建,多行,字符串?dāng)?shù)組) S2 = 創(chuàng)建 多行 字符串?dāng)?shù)組,1字符串轉(zhuǎn)換成矩陣 將字符串轉(zhuǎn)換成矩陣的函數(shù)為str2mat。例如: S=數(shù)值,字符串,2012年6月 M=str2mat(S) S = 數(shù)值 字符串 2012年6月 M = 數(shù)值 字符串 2012年6月,3.1.4 字符串?dāng)?shù)組的轉(zhuǎn)換,2字符串與數(shù)值的轉(zhuǎn)換 利用str2num和num2 str實(shí)現(xiàn)字符串與數(shù)
7、值的相互轉(zhuǎn)換。例如: X=1:9; S=num2str(X) S = 1 2 3 4 5 6 7 8 9,注:雖然S的顯示結(jié)果與X看上去一樣,但其含義不同。X是數(shù)組,S是字符串。同樣字符串可以轉(zhuǎn)化為數(shù)組,例如:, S=11 22;33 44 S = 11 22 33 44 X=str2num(S) X = 11 22 33 44,3.2 單元數(shù)組,首頁(yè),3.2.1 單元數(shù)組的創(chuàng)建,1使用大括號(hào) 直接創(chuàng)建 例如: A=Command ,Workspace;Current Directory,History A = Command Workspace Current Directory Histo
8、ry,2對(duì)細(xì)胞元素直接賦值創(chuàng)建 【例3-1】創(chuàng)建一個(gè)學(xué)生的各科成績(jī)單元數(shù)組。 S1,1=語(yǔ)文; S1,2=數(shù)學(xué); S1,3=外語(yǔ); S1,4=物理; S1,5=化學(xué); S1,6=生物; S2,1=102; S2,2=125; S2,3=130; S2,4=86; S2,5=82; S2,6=80; S,3利用函數(shù)cell創(chuàng)建一個(gè)大小合適的空矩陣 格式 cell(m,n) %創(chuàng)建一個(gè)mn的空細(xì)胞矩陣,矩陣所有行必須要有相同的細(xì)胞數(shù),首頁(yè),運(yùn)行結(jié)果如下: S = 語(yǔ)文 數(shù)學(xué) 外語(yǔ) 物理 化學(xué) 生物 102 125 130 86 82 80,注:該方法首先使用cell函數(shù)定義一個(gè)單元數(shù)組,此時(shí),由于
9、數(shù)組的各個(gè)元素還沒(méi)有定義,因此,所顯示的單元數(shù)組中元素都用空陣 來(lái)表示。然后,依次輸入單元數(shù)據(jù)中各個(gè)元素的值,可以發(fā)現(xiàn),每輸入一個(gè)值,用相應(yīng)的值代替空陣。,3.2.2 單元數(shù)組的顯示,首頁(yè),1celldisp函數(shù) 格式 celldisp(cell) %逐個(gè)顯示cell的每個(gè)元素的值 例如,對(duì)【例3-2】中的數(shù)組B,執(zhí)行命令: celldisp(B) 顯示的結(jié)果如下: B1,1 = matrix B2,1 = 1234 5678 B1,2 = laboratory B2,2 = Tollboxs B1,3 = MATLAB B2,3 = 7.14 2012(a),2cellplot函數(shù) 格式 c
10、ellplot(B) %用彩色的圖形來(lái)顯示單元型變量B的結(jié)構(gòu)形式,例如,對(duì)【例3-2】中的數(shù)組B,繼續(xù)執(zhí)行命令: cellplot(B) 顯示結(jié)果如圖3-1所示。,首頁(yè),圖3-1 單元型變量的結(jié)構(gòu),實(shí)際上,B1相當(dāng)于B1,1;B2相當(dāng)于B2,1;B3相當(dāng)于B1,2,等等。注意使用大括號(hào)與小括號(hào)的不同,大括號(hào)是用于標(biāo)示單元而不考慮這些單元的值,而小括號(hào)用于尋址單元的值。,3.2.3 單元數(shù)組的內(nèi)容獲取,為了獲取單元數(shù)組中一個(gè)單元的值,只需使用大括號(hào)。如對(duì)【例3-2】中的數(shù)組B,執(zhí)行命令: B1 ans = matrix B2 ans = 1234 5678 B3 ans = laboratory
11、,例如: B(1) ans = matrix B(2) ans = 2x4 char,首頁(yè),MATLAB的單元數(shù)組在進(jìn)行統(tǒng)計(jì)分析時(shí),不能直接使用計(jì)算統(tǒng)計(jì)量的函數(shù),而必須將單元數(shù)組中單元的數(shù)值轉(zhuǎn)化成數(shù)值向量,隨后進(jìn)行數(shù)值計(jì)算。,3.2.4 單元數(shù)組的數(shù)據(jù)處理,首頁(yè),例如,對(duì)【例3-1】中形成的數(shù)組,計(jì)算這個(gè)學(xué)生考試的總分。 由于數(shù)組C的顯示結(jié)果為: C = 語(yǔ)文 數(shù)學(xué) 外語(yǔ) 物理 化學(xué) 生物 102 125 130 86 82 80,運(yùn)行結(jié)果如下: X = 102 125 130 86 82 80 ans = 605,若直接對(duì)C的第2行求和,命令窗口顯示出錯(cuò)。這時(shí)需將單元數(shù)組轉(zhuǎn)化成數(shù)值數(shù)組,具體
12、程序如下: for i=1:6 X(i)=C2,i; %將單元數(shù)組C的第二行第i列的內(nèi)容賦于數(shù)值數(shù)組X end X, sum(X) %顯示數(shù)組X及考試總分,3.3 結(jié)構(gòu)數(shù)組,首頁(yè),1直接輸入法 在給結(jié)構(gòu)數(shù)組中元素直接賦值的同時(shí)定義該元素的名稱,并使用“.”將結(jié)構(gòu)變量名與元素名連接。,格式 struct_name(record#).field_name=data,%創(chuàng)建將數(shù)據(jù)data直接賦值給變量名,struct_name(record#)和元素名,field_name的結(jié)構(gòu)數(shù)組,說(shuō)明 創(chuàng)建11的結(jié)構(gòu)數(shù)組時(shí)可省略記錄號(hào)(record#)項(xiàng),【例3-3】 建立學(xué)生檔案的小型數(shù)據(jù)庫(kù)。 student
13、.test=90 86 82 88 92 75 80; =zhaohua; student.sex=F; student.age=20;, student.num=20110501; student.add=qd uinversity; student.tel student,運(yùn)行結(jié)果如下,student = test: 90 86 82 88 92 75 80 name: zhaohua sex: F age: 20 num: 20110501 add: qd uinversity tel:我們可以繼續(xù)添加其他學(xué)生數(shù)
14、據(jù)的結(jié)構(gòu)變量,只需要加記錄號(hào)即可: student(2).test=92 87 85 81 90 78 82; student(2).name=yangping; student(2).sex=M; student(2).age=22; student(2).num=20110502; student(2).add=qd uinversity; student(2).tel,我們可以繼續(xù)添加其他學(xué)生數(shù)據(jù)的結(jié)構(gòu)變量,只需要加記錄號(hào)即可: student(2).test=92 87 85 81 90 78 82; student(2).name=yangping; stu
15、dent(2).sex=M; student(2).age=22; student(2).num=20110502; student(2).add=qd uinversity; student(2).tel,此時(shí)輸入student,將只得到該結(jié)構(gòu)的成員變量名而不顯示內(nèi)容: student student = 1x2 struct array with fields: test name sex age num add tel,可以繼續(xù)在命令窗口中查詢student的具體內(nèi)容: student(1) %系統(tǒng)將開(kāi)始的student默認(rèn)為student(1) ans = t
16、est: 90 86 82 88 92 75 80 name: zhaohua sex: F; age: 20; num: 20110501 add: qd uinversity tel: student(2) ans = test: 92 87 85 81 90 78 82 name: yangping sex: M; age: 22; num: 20110502 add: qd uinversity tel:2使用struct函數(shù)生成結(jié)構(gòu)數(shù)組,格式 S=struct(field1,V1, field2,V2,) % field為各成員變量
17、名,V為對(duì)應(yīng)的各成員 變量的內(nèi)容,返回結(jié)構(gòu)數(shù)組S,【例3-4】用struct函數(shù)創(chuàng)建結(jié)構(gòu)數(shù)組變量。 S =struct(city,beijing,shanghai,renkou,1500,1300) 運(yùn)行結(jié)果如下: S = 1x2 struct array with fields: city renkou S.city ans = beijing ans = shanghai S.renkou ans = 1500 1300,3.3.2 結(jié)構(gòu)數(shù)組的操作,1在結(jié)構(gòu)數(shù)組中添加項(xiàng) 如果用戶想在一個(gè)結(jié)構(gòu)數(shù)組中添加其它項(xiàng),直接按照生成格式輸入即可。,【例3-5】 在學(xué)生數(shù)據(jù)庫(kù)【例3-3】中的studen
18、t,若要添加元素項(xiàng)height和weight,只需輸入: student(1).height=1.62 student(1).weight=54; student(2).height=1.82; student(2).weight=75; student %顯示student的結(jié)構(gòu),首頁(yè),運(yùn)行結(jié)果如下:,student = 1x2 struct array with fields: test name sex age num add tel height weight,首頁(yè),從上面的輸出結(jié)果可知,在student中新添加了height和weight兩項(xiàng)紀(jì)錄,進(jìn)而可顯示:, student(1)
19、 ans = test: 90 86 82 88 92 75 80 name: zhaohua sex: F; age: 20; num: 20110501 add: qd uinversity tel:height: 1.6200 weight: 54, student(2) ans = test: 92 87 85 81 90 78 82 name: yangping sex: M; age: 22; num: 20110502 add: qd uinversity tel:height: 1.8200 weight: 75,2在結(jié)構(gòu)數(shù)組
20、中刪除項(xiàng) 格式 S=rmfield(S,fields) %將結(jié)構(gòu)數(shù)組S中的fields項(xiàng)刪去,仍用數(shù)組名S表示 說(shuō)明 當(dāng)fields是字符串或單元數(shù)組變量時(shí),將一次性刪除多項(xiàng)。 【例3-6】 對(duì)【例3-5】中結(jié)果,輸入語(yǔ)句:,首頁(yè),首頁(yè), student=rmfield(student,weight) 運(yùn)行結(jié)果如下: student = 1x2 struct array with fields: test name sex age num add tel height, student(1) ans = test: 90 86 82 88 92 75 80 name: zhaohua sex:
21、 F age: 20 num: 20110501 add: qd uinversity tel:height: 1.6200, student(2) ans = test: 92 87 85 81 90 78 82 name: yangping sex: M; age: 22; num: 20110502 add: qd uinversity tel:height: 1.8200,3在結(jié)構(gòu)數(shù)組中調(diào)用元素項(xiàng),結(jié)構(gòu)數(shù)組中的任何信息,可以通過(guò)“結(jié)構(gòu)體名稱+元素項(xiàng)名稱”的格式取出。 例如,對(duì)【例3-6】中結(jié)果,輸入語(yǔ)句: student(1).tes
22、t ans = 90 86 82 88 92 75 80 student(1).test (4) ans = 88 student(2).test ans = 92 87 85 81 90 78 82 student(2).test(4) ans = 8,也可直接取出所有同學(xué)的姓名和分?jǐn)?shù),如執(zhí)行命令: ans = zhaohua ans = yangping student.test ans = 90 86 82 88 92 75 80 ans = 92 87 85 81 90 78 82,3.3.3結(jié)構(gòu)數(shù)組與單元數(shù)組的轉(zhuǎn)換 格式 C=struct2cell(S) %
23、將結(jié)構(gòu)數(shù)組S轉(zhuǎn)化為單元數(shù)組C S=cell2struct(C) %將單元數(shù)組C轉(zhuǎn)化為結(jié)構(gòu)數(shù)組S,例如,在【例3-4】中創(chuàng)建的結(jié)構(gòu)數(shù)組S,執(zhí)行命令: C=struct2cell(S) C(:,:,1) = beijing 1x2 double C(:,:,2) = shanghai 1x2 double C=C(:,1),C(:,2) C = beijing shanghai 1x2 double 1x2 double,3.4 綜合實(shí)例,單元數(shù)組和結(jié)構(gòu)數(shù)組具有類似數(shù)據(jù)庫(kù)功能,因此本章實(shí)例給出一個(gè)建立學(xué)生班級(jí)檔案數(shù)組。由于對(duì)字符串也可以實(shí)施查找和計(jì)算長(zhǎng)度,所以我們給出一個(gè)計(jì)算轉(zhuǎn)移概率的方法,進(jìn)而可
24、做一些市場(chǎng)預(yù)測(cè)。,3.4.1 建立學(xué)生班級(jí)檔案數(shù)組,【例3-7】 現(xiàn)給出2011級(jí)機(jī)械班第一學(xué)期考試課程的任課教師和學(xué)生信息,如表3-1和表3-2所示。,表3-1 2011級(jí)機(jī)械班學(xué)生信息,表3-2 2011級(jí)機(jī)械班任課教師信息,試求:(1)建立任課教師和學(xué)生的結(jié)構(gòu)數(shù)組teacher和student; (2)以建立的結(jié)構(gòu)數(shù)組teacher和student為基礎(chǔ),再創(chuàng)建班級(jí)的細(xì)胞數(shù)組,并顯示教師和學(xué)生的信息。,(1)創(chuàng)建學(xué)生結(jié)構(gòu)數(shù)組 clear student(1).number=20110103001; student(1).name=趙凱; student(1).course=高等數(shù)學(xué),大學(xué)
25、英語(yǔ),計(jì)算機(jī)基礎(chǔ),機(jī)械制圖; student(1).score=86 80 92 79; student(2).number=20110103002; student(2).name=王菲; student(2).course=高等數(shù)學(xué),大學(xué)英語(yǔ),計(jì)算機(jī)基礎(chǔ),機(jī)械制圖; student(2).score=78 85 90 82; student(3).number=20110103003; student(3).name=劉洋; student(3).course=高等數(shù)學(xué),大學(xué)英語(yǔ),計(jì)算機(jī)基礎(chǔ),機(jī)械制圖; student(3).score=88 80 95 90;,(2)創(chuàng)建教師結(jié)構(gòu)數(shù)組 t
26、eacher(1).name=孫天宇; teacher(1).course=高等數(shù)學(xué); teacher(2).name=劉梅芳; teacher(2).course=大學(xué)英語(yǔ); teacher(3).name=王海濤; teacher(3).course=計(jì)算機(jī)基礎(chǔ); teacher(4).name=楊一凡; teacher(4).course=機(jī)械制圖;,(3)創(chuàng)建班級(jí)單元數(shù)組 class=cell(1,2); class1,1=student; class1,2=teacher;,(4)顯示單元數(shù)組結(jié)構(gòu) celldisp(class) 運(yùn)行結(jié)果如下: class1 = 1x3 struct
27、 array with fields: number name course score class2 = 1x4 struct array with fields: name cours,(5) 查詢第一個(gè)學(xué)生信息 class1(1).name %查詢第一個(gè)學(xué)生的姓名 class1(1).course %查詢第一個(gè)學(xué)生學(xué)習(xí)課程 class1(1).score %查詢第一個(gè)學(xué)生成績(jī) %查詢開(kāi)課教師姓名,運(yùn)行結(jié)果如下: ans = 趙凱 ans = 高等數(shù)學(xué) 大學(xué)英語(yǔ) 計(jì)算機(jī)基礎(chǔ) 機(jī)械制圖 ans = 86 80 92 79 ans = 孫天宇 ans = 劉梅芳 ans = 王濤 ans = 楊一凡,3.4.2 股票價(jià)格走勢(shì)預(yù)測(cè),【例3-8】某人打算購(gòu)買股票,選定某一只股票進(jìn)行觀察其價(jià)格變動(dòng)情況,并進(jìn)行記錄。若當(dāng)日收盤價(jià)格高于上一日的收盤價(jià)格,記為1,表示上升;否則
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療機(jī)構(gòu)行政部門職責(zé)
- 2025部編二年級(jí)語(yǔ)文下冊(cè)課程教學(xué)計(jì)劃
- 牛津譯林版一年級(jí)上冊(cè)英語(yǔ)班級(jí)管理計(jì)劃
- 一年級(jí)班務(wù)教學(xué)素質(zhì)教育工作計(jì)劃
- 2025年裝飾公司營(yíng)銷策略工作計(jì)劃
- 六年級(jí)道德與法治學(xué)習(xí)能力提升計(jì)劃
- 以形啟思:知識(shí)可視化視覺(jué)表征工具在初中物理概念教學(xué)中的創(chuàng)新實(shí)踐
- 以學(xué)生為主體的小學(xué)英語(yǔ)課外作業(yè)創(chuàng)新與實(shí)踐研究
- 新課標(biāo)信息技術(shù)學(xué)習(xí)心得體會(huì)
- 國(guó)有企業(yè)資金管理機(jī)制完善問(wèn)題及措施
- 2025年廣東省高考語(yǔ)文試卷(含標(biāo)準(zhǔn)答案)
- DL∕T 5342-2018 110kV~750kV架空輸電線路鐵塔組立施工工藝導(dǎo)則
- (高清版)TDT 1056-2019 縣級(jí)國(guó)土資源調(diào)查生產(chǎn)成本定額
- 《勞動(dòng)合同法講解》課件
- 小學(xué)語(yǔ)文人教五年級(jí)上冊(cè)第七單元《四季之美》課件 市賽獲獎(jiǎng)
- 沉淀法白炭黑的性能與運(yùn)用課件
- 勝任力調(diào)查問(wèn)卷
- 李善友顛覆式創(chuàng)新課件
- 分包單位過(guò)程施工進(jìn)度款審批表
- 比和比例綜合練習(xí)題及答案-
- 小學(xué)古詩(shī)詞大賽-九宮格練習(xí)課件
評(píng)論
0/150
提交評(píng)論