《數(shù)組及其運(yùn)算》PPT課件.ppt_第1頁(yè)
《數(shù)組及其運(yùn)算》PPT課件.ppt_第2頁(yè)
《數(shù)組及其運(yùn)算》PPT課件.ppt_第3頁(yè)
《數(shù)組及其運(yùn)算》PPT課件.ppt_第4頁(yè)
《數(shù)組及其運(yùn)算》PPT課件.ppt_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三章 數(shù)組及其運(yùn)算,本章主要內(nèi)容如下: 3.1 概述 3.2 數(shù)值數(shù)組的生成和尋訪 3.3 數(shù)組運(yùn)算和矩陣運(yùn)算 3.4 非數(shù)和空數(shù)組 3.5 數(shù)組的關(guān)系運(yùn)算和邏輯運(yùn)算 3.6 字符串?dāng)?shù)組,3.1 概述,MATLAB長(zhǎng)于數(shù)值計(jì)算,而所謂數(shù)值計(jì)算,就是指計(jì)算的表達(dá)式、變量中不得包含未經(jīng)定義的自由變量。 數(shù)值數(shù)組(Numeral Array)和數(shù)組運(yùn)算(Array Operations)是MATLAB的核心內(nèi)容。數(shù)組是MATLAB最重要的一種內(nèi)建數(shù)據(jù)類(lèi)型,而數(shù)組運(yùn)算則是定義在這種數(shù)據(jù)結(jié)構(gòu)上的方法。本章重點(diǎn)介紹數(shù)值數(shù)組,其次是與數(shù)組類(lèi)似其它結(jié)構(gòu)體。 數(shù)組:是指由一組實(shí)數(shù)或復(fù)數(shù)排成的長(zhǎng)方陣列(Arra

2、y),包括行向量、列向量和矩陣。 數(shù)組的運(yùn)算: 無(wú)論對(duì)數(shù)組施加什么運(yùn)算(加減乘除或函數(shù))總認(rèn)定那種運(yùn)算對(duì)被運(yùn)算數(shù)組中的每個(gè)元素平等地實(shí)施同樣的操作。,3.1 概述,變量及其賦值 在命令窗口可直接輸入變量并賦值,無(wú)須聲明其類(lèi)型和維數(shù),MATLAB將自動(dòng)處理。 MATLAB 的變量名稱由英文大小寫(xiě)52個(gè)字母、數(shù)字和下劃線等符號(hào)組成,并且第一個(gè)字符必須是英文字母,變量和常量最長(zhǎng)允許31個(gè)字符。須注意的是,在默認(rèn)狀態(tài)下,MATLAB對(duì)字母大小寫(xiě)敏感 。,3.1 概述,MATLAB數(shù)據(jù)格式及顯示方式 MATLAB既可用傳統(tǒng)的十進(jìn)制數(shù)表達(dá)數(shù)值,也可以用科學(xué)計(jì)數(shù)表達(dá)數(shù)值,用e代表10的指數(shù)形式,用i和j來(lái)代

3、表虛數(shù)。 MATLAB內(nèi)部數(shù)據(jù)格式只有一種,是IEEE浮點(diǎn)標(biāo)準(zhǔn)的雙精度二進(jìn)制(64位),相應(yīng)于十進(jìn)制的16位有效數(shù),范圍為10-308 10+308。 為了人機(jī)交互的友好性,數(shù)據(jù)輸出顯示格式有8種 ??捎貌藛芜x項(xiàng)或format命令選擇。,3.2 數(shù)值數(shù)組的生成和尋訪,3.2.1 一維數(shù)組 一維數(shù)組的創(chuàng)建 逐個(gè)元素輸入法 借助數(shù)組編輯器可以逐個(gè)輸入數(shù)組元素(對(duì)于二維數(shù)組同樣適用),但也可在指令窗中直接輸入。例如在指令窗中輸入(數(shù)組元素之間用“ ” 或“,”隔開(kāi)): x=2 pi/3 sqrt(3) 3+5i 則將顯示:,x = 2.0000 1.0472 1.7321 3.0000 + 5.00

4、00i,3.2 數(shù)值數(shù)組的生成和尋訪,3.2.1 一維數(shù)組 一維數(shù)組的創(chuàng)建 定數(shù)線性采樣法 該方法在設(shè)定的“總點(diǎn)數(shù)”下,均勻采樣生成一維“行”數(shù)組。其通用格式為: x=linspace(a , b , n),【說(shuō)明】 a、b分別是生成數(shù)組的第一個(gè)和最后一個(gè)元素,n是采樣總點(diǎn)數(shù)。 該指令與 x=a: (b-a)/(n-1) : b 相同。,此外還可通過(guò)數(shù)組運(yùn)算或數(shù)組生成函數(shù),構(gòu)建某些特殊的數(shù)組。,【例】一維數(shù)組的冒號(hào)生成法和定數(shù)線性采樣法。,顯然這兩種方法生成的一維數(shù)組是完全相同的。,3.2.1一維數(shù)組 一維數(shù)組的尋訪 數(shù)組尋訪的一般格式為X(index),下標(biāo)index可以是單個(gè)正整數(shù)或正整數(shù)

5、數(shù)組。,例如對(duì)數(shù)組 作如下操作:,x = 2.0000 1.0472 1.7321 3.0000 + 5.0000i , x(3) ans = 1.7321 x(1 2 4) ans = 2.0000 1.0472 3.0000 + 5.0000i x(2:end) ans = 1.0472 1.7321 3.0000 + 5.0000i x(4:-1:1) ans = 3.0000 + 5.0000i 1.7321 1.0472 2.0000,下標(biāo)為由 構(gòu)成的數(shù)組,下標(biāo)為由冒號(hào)生成法構(gòu)成的數(shù)組,取單個(gè)數(shù)組元素,3.2.2 二維數(shù)組 二維數(shù)組的創(chuàng)建 直接輸入法 整個(gè)輸入數(shù)組須以“ ”為其首尾;

6、 數(shù)組行與行之間用“;”或“回車(chē)鍵”隔離; 數(shù)組元素用逗號(hào)或空格分離。,其中,第一個(gè)矩陣輸入采用“;”分行,第二個(gè)矩陣輸入采用“回車(chē)鍵”分行。, A=1 2 3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9 A=1,2,3 4,5,6 7,8,9 A = 1 2 3 4 5 6 7 8 9,3.2.2 二維數(shù)組 二維數(shù)組的創(chuàng)建 利用M文件創(chuàng)建和保存數(shù)組,對(duì)于經(jīng)常需要調(diào)用的且比較大的數(shù)組,可專門(mén)為該數(shù)組創(chuàng)建一個(gè)M文件。利用文件編輯器輸入該數(shù)組并保存,以后只要在MATLAB指令窗中,運(yùn)行該文件,文件中的數(shù)組就會(huì)自動(dòng)生成于MATLAB內(nèi)存中。,標(biāo)準(zhǔn)數(shù)組生成函數(shù), d=eye(5

7、) %產(chǎn)生(5*5)的單位陣,d = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1,3.2.2 二維數(shù)組 二維數(shù)組的尋訪和賦值 全元素標(biāo)識(shí)和賦值 這是一種最常用的標(biāo)識(shí)方式,對(duì)于二維數(shù)組來(lái)說(shuō),“全下標(biāo)”標(biāo)識(shí)由兩個(gè)下標(biāo)組成:行下標(biāo),列下標(biāo)。如A(3,5)等。,單下標(biāo)標(biāo)識(shí)和賦值 這是只用一個(gè)下標(biāo)來(lái)指明元素在數(shù)組中的位置。對(duì)二維數(shù)組采用“單下標(biāo)”標(biāo)識(shí),應(yīng)先對(duì)數(shù)組的所有元素進(jìn)行“一維編號(hào)”,即先設(shè)想把二維數(shù)組的所有列按先左后右的次序,首尾相接排成“一維長(zhǎng)列”;然后自上往下對(duì)元素位置進(jìn)行編號(hào)。,3.2.2 二維數(shù)組 二維數(shù)組的尋訪和賦值 利用MATLA

8、B的冒號(hào)運(yùn)算,可方便地進(jìn)行數(shù)組(矩陣)的子數(shù)組(子矩陣)的尋訪和賦值。,冒號(hào)表達(dá)式: s1:s2:s3 式中,s1:起始值; s2:步長(zhǎng)(省略為1); s3:終止值。,例如: A(:,j):表示A矩陣第j列全部元素 A(i,:):表示A矩陣第i行全部元素 A(1:3,2:4):表示對(duì)A矩陣取第一到第三行,第二到第四列中所有元素構(gòu)成的子矩陣。,3.3.1 數(shù)組運(yùn)算的常用函數(shù) 函數(shù)數(shù)組的運(yùn)算規(guī)則 對(duì)于(mn)數(shù)組X=xijmn,函數(shù)f()的數(shù)組運(yùn)算規(guī)則是指: f(X)=f(xij)mn,3.3 數(shù)組運(yùn)算和矩陣運(yùn)算,例如對(duì)(33)數(shù)組A進(jìn)行2次乘方運(yùn)算A2,只需對(duì)數(shù)組中每個(gè)元素進(jìn)行乘方運(yùn)算aij2即

9、可,如右圖所示。, A=1 2 3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9 A .2 ans = 1 4 9 16 25 36 49 64 81,3.3.1 數(shù)組運(yùn)算的常用函數(shù) 常用函數(shù),3.3 數(shù)組運(yùn)算和矩陣運(yùn)算, mod(A,2) ans = 1 0 1 0 1 0 1 0 1,例如對(duì)數(shù)組, log(A) ans = 0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794 2.1972, exp(A) ans = 1.0e+003 * 0.0027 0.0074 0.0201 0.0546 0.1484 0.4034

10、 1.0966 2.9810 8.1031, sign(A) ans = 1 1 1 1 1 1 1 1 1, real(A) ans = 1 2 3 4 5 6 7 8 9, angle(A) ans = 0 0 0 0 0 0 0 0 0,3.3.2 矩陣運(yùn)算 矩陣運(yùn)算不同于數(shù)組運(yùn)算,要符合矩陣運(yùn)算的規(guī)則,%例二維數(shù)組、矩陣運(yùn)算 A=-4,-3,-2;-1,0,1;2,3,4;B=1,3,2;3,2,5;2,5,7; C=A+B*i %生成復(fù)數(shù)數(shù)組 C.,C %非共軛轉(zhuǎn)置和共軛轉(zhuǎn)置,A./B,A/B %數(shù)組、矩陣右除 B.A,BA %數(shù)組、矩陣左除 A.*B,A*B %數(shù)組乘和矩陣乘,an

11、s = -4.0000 -1.0000 -1.0000 -0.3333 0 0.2000 1.0000 0.6000 0.5714 ans = -2.5000 -1.5000 1.5000 -1.0000 -0.5455 0.8182 0.5000 0.4091 0.1364 ans = -4.0000 -1.0000 -1.0000 -0.3333 0 0.2000 1.0000 0.6000 0.5714 ans = -3.5000 -3.0000 -2.5000 -1.9545 -1.6364 -1.3182 2.6818 2.4545 2.2273,A./B,A/B,B.A,BA,A=

12、-4,-3,-2;-1,0,1;2,3,4; B=1,3,2;3,2,5;2,5,7;,在程序流控制和邏輯、模糊推理中,都需要對(duì)一類(lèi)是非問(wèn)題作出“是真”、“是假”的判斷。為此,MATLAB設(shè)計(jì)了關(guān)系操作、邏輯操作和一些相關(guān)函數(shù)。雖在其它程序語(yǔ)言中也有類(lèi)似的關(guān)系、邏輯運(yùn)算,但MATLAB作為一種比較完善的科學(xué)計(jì)算環(huán)境,有其自身的特點(diǎn)。,MATLAB約定: 在所有關(guān)系、邏輯表達(dá)式中,作為輸入的任何非0數(shù)都被看成是“邏輯真”,只有0被認(rèn)為是“邏輯假”。 所有關(guān)系表達(dá)式和邏輯表達(dá)式的計(jì)算結(jié)果,即輸出,是一個(gè)由0和1組成的“邏輯數(shù)組”(Logical Array)。在此數(shù)組中的1表示“真”,0表示“假”

13、。 邏輯數(shù)組是一種特殊的數(shù)值數(shù)組,與“數(shù)值類(lèi)”有關(guān)的操作和函數(shù)對(duì)它也同樣適用;但它又不同于普通的“數(shù)值”,它還表示著對(duì)事物的判斷結(jié)論“真”與“假”。因此它又有其自身的特殊用途,如數(shù)組尋訪等。,3.4 關(guān)系操作和邏輯操作,3.4.1 關(guān)系操作 關(guān)系操作指令,3.4 關(guān)系操作和邏輯操作,【說(shuō)明】 標(biāo)量與數(shù)組比較 比較在此標(biāo)量和數(shù)組每個(gè)元素之間進(jìn)行,比較結(jié)果與被比較數(shù)組同維。 數(shù)組與數(shù)組比較 兩數(shù)組的維數(shù)必須相同,比較在兩數(shù)組相同位置上的元素間進(jìn)行,比較結(jié)果與被比數(shù)組同維。,關(guān)系運(yùn)算示例:, A=1:9,B=10-A,r0=(AB),A = 1 2 3 4 5 6 7 8 9 B = 9 8 7 6

14、 5 4 3 2 1,r0 = 1 1 1 0 0 0 0 0 0,r1 = 0 0 0 0 1 0 0 0 0,r2 = 0 0 0 0 0 1 1 1 1,3.4.2 邏輯操作 邏輯操作指令,3.4 關(guān)系操作和邏輯操作,【說(shuō)明】 標(biāo)量與數(shù)組邏輯運(yùn)算 運(yùn)算比較在標(biāo)量與數(shù)組每個(gè)元素之間進(jìn)行,結(jié)果與數(shù)組同維。 數(shù)組與數(shù)組邏輯運(yùn)算 參與運(yùn)算的數(shù)組必須同維,運(yùn)算在兩數(shù)組相同位置上的元素間進(jìn)行,運(yùn)算結(jié)果與數(shù)組同維。,邏輯操作示例1:, A=1:9, B=10-A, r0=(AB)y=sin(t); %產(chǎn)生正弦波 z1=(t2*pi).*y; %獲得整流半波w=(tpi/3 %獲得削頂整流半波subpl

15、ot(1,3,1),plot(t,y,:r),ylabel(y) subplot(1,3,2),plot(t,z1,:r),axis(0 10 -1 1) subplot(1,3,3),plot(t,z2,-b),axis(0 10 -1 1),3.5 字符串?dāng)?shù)組,字符串?dāng)?shù)組(簡(jiǎn)稱串?dāng)?shù)組)主要用于數(shù)據(jù)可視化、圖形用戶界面GUI 制作等,它與數(shù)值數(shù)組為不同的數(shù)據(jù)類(lèi)(Class),如數(shù)值標(biāo)量在內(nèi)存中占8個(gè)字節(jié),而一個(gè)字符則只需2個(gè)字節(jié)。本節(jié)對(duì)字符串?dāng)?shù)組作一簡(jiǎn)要介紹。,3.5 .1 字符串?dāng)?shù)組創(chuàng)建與操作 字符變量的創(chuàng)建方式 在指令窗中,將待建的字符放在單引號(hào)對(duì) 中,再按Enter鍵(單引號(hào)對(duì)必須在英

16、文狀態(tài)下輸入) 。,如在指令窗中輸入 : a=university 則a即為字符變量,也為串?dāng)?shù)組。, a=an university a = an university,3.5 .1 字符串?dāng)?shù)組創(chuàng)建與操作 串?dāng)?shù)組的大小 串?dāng)?shù)組中每個(gè)字符(包括空格和標(biāo)點(diǎn))都占據(jù)一個(gè)元素位,上面輸入的數(shù)組a的大小可用下面指令獲得:, size(a) ans = 1 13,表示這是一個(gè)113的數(shù)組。,串?dāng)?shù)組的元素標(biāo)識(shí),在一維串?dāng)?shù)組中,MATLAB按自左至右的次序標(biāo)識(shí)字符的位置,如:, b=a(end:-1:1) b = ytisrevinu na,3.5 .1 字符串?dāng)?shù)組創(chuàng)建與操作 中文字符串?dāng)?shù)組 在中文字符串?dāng)?shù)組

17、中,每個(gè)字符也占一個(gè)元素位置,如串?dāng)?shù)組中每個(gè)字符(包括空格和標(biāo)點(diǎn))都占據(jù)一個(gè)元素位,上面輸入的數(shù)組a的大小可用下面指令獲得:, A=武漢科技大學(xué),size(A) A = 武漢科技大學(xué) ans = 1 6,由小串構(gòu)成長(zhǎng)串, B=A, ,機(jī)械自動(dòng)化學(xué)院 B = 武漢科技大學(xué) 機(jī)械自動(dòng)化學(xué)院,3.5.1 字符串?dāng)?shù)組創(chuàng)建與操作 多行串?dāng)?shù)組的創(chuàng)建 直接創(chuàng)建 多行串?dāng)?shù)組的直接創(chuàng)建時(shí),要保證同一串?dāng)?shù)組的各行字符數(shù)要相等:,利用串操作函數(shù)創(chuàng)建,串操作函數(shù)按最長(zhǎng)行設(shè)置每行長(zhǎng)度,其它行的尾部用空格填充:, AB=A, ;機(jī)械自動(dòng)化學(xué)院,size(AB) AB = 武漢科技大學(xué) 機(jī)械自動(dòng)化學(xué)院 ans = 2 7,

18、 AC=char(A,機(jī)械自動(dòng)化學(xué)院),size(AC) AC = 武漢科技大學(xué) 機(jī)械自動(dòng)化學(xué)院 ans = 2 7,3.5.2 串操作函數(shù),3.5.3 串轉(zhuǎn)換函數(shù),3.6.1 非數(shù)NAN 非數(shù)(Not a Number)指的是 0/0, / , 0 之類(lèi)的運(yùn)算, 在MATLAB中用NaN或nan表示。 NaN具有以下性質(zhì): NaN參與運(yùn)算所得的結(jié)果也是NaN,即具有傳遞性; 非數(shù)沒(méi)有大小的概念,不能比較兩個(gè)非數(shù)的大小。 非數(shù)的功用: 真實(shí)表示0/0, / , 0 運(yùn)算的結(jié)果; 避免因這類(lèi)異常運(yùn)算而造成程序中斷; 在數(shù)據(jù)可視化中,用來(lái)裁減圖形。,3.6 “非數(shù)”和“空”數(shù)組,Warning: Divide by zero.a = NaNWarning: Log of zero.n = NaNc = NaNd = NaN,【例】非數(shù)的產(chǎn)生和性質(zhì)演示,非數(shù)具有傳遞性, a=0/0,n=0*log(0),c=inf/inf,d=sin(a),【例】非數(shù)的產(chǎn)生和處理:求近似極限,修補(bǔ)圖形缺口,t=-2*pi:pi/10:2*pi; %該自變量數(shù)組中存在零值 y=sin(t)./t; %在t=0處,計(jì)算將產(chǎn)生NaN tt=t+(t=0)*eps; %邏輯數(shù)組參與運(yùn)算,用“機(jī)器零”代替0元素yy=sin(tt)./tt; %用數(shù)值可算的sin(eps)/eps近似替代sin(

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論