數(shù)據(jù)系統(tǒng)與數(shù)組.ppt_第1頁
數(shù)據(jù)系統(tǒng)與數(shù)組.ppt_第2頁
數(shù)據(jù)系統(tǒng)與數(shù)組.ppt_第3頁
數(shù)據(jù)系統(tǒng)與數(shù)組.ppt_第4頁
數(shù)據(jù)系統(tǒng)與數(shù)組.ppt_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章數(shù)據(jù)系統(tǒng)和數(shù)組本章介紹了MATLAB的一個特點(diǎn)是能夠高效地處理和計算任何復(fù)雜的數(shù)據(jù)結(jié)構(gòu),包括各種數(shù)組和字符串。MATLAB提供的數(shù)值數(shù)組、字符串?dāng)?shù)組、單元數(shù)組和結(jié)構(gòu)數(shù)組可以處理各種應(yīng)用問題。其中,數(shù)值陣列是科學(xué)研究中最基本的運(yùn)算單元,許多先進(jìn)的數(shù)學(xué)方法總是離散成矩陣代數(shù)并進(jìn)行數(shù)值計算。我們在科學(xué)實(shí)驗(yàn)中得到的數(shù)據(jù)通常被總結(jié)成數(shù)組。因此,靈活生成數(shù)組,掌握數(shù)組的各種修改和變換,計算各種矩陣是我們的重要課題之一。MATLAB的特點(diǎn)之一是區(qū)分?jǐn)?shù)組運(yùn)算和矩陣代數(shù)運(yùn)算。當(dāng)使用點(diǎn)乘(.*)和點(diǎn)分(。/)來操作一個數(shù)組,這叫做數(shù)組運(yùn)算,而使用傳統(tǒng)的運(yùn)算符來操作一個數(shù)組則叫做矩陣運(yùn)算。MATLAB把所有的

2、運(yùn)算對象都看作矩陣形式,特別是標(biāo)量為11的矩陣,一維數(shù)組必須表示為1n或n1。雖然陣列的點(diǎn)乘和點(diǎn)除算法在數(shù)學(xué)上不是很標(biāo)準(zhǔn),但它大大提高了計算和編程的效率。掌握數(shù)組和矩陣的運(yùn)算是靈活應(yīng)用MATLAB的前提和基礎(chǔ)。2.1基本操作指南,這里我們介紹一些MATLAB的基本知識和基本命令,對我們來說更容易上手。關(guān)于數(shù)組的知識點(diǎn)可以在幫助中獲得,如圖2所示。2.1.1常數(shù)和變量。學(xué)習(xí)過高級計算機(jī)語言的讀者熟悉常量和變量,這些概念基本上可以并行轉(zhuǎn)移到MATLAB。下面簡單列出了MATLAB中常量和變量的基本內(nèi)容。MATLAB的數(shù)值采用十進(jìn)制例2.1.1,以下表達(dá)式均合法。48,-168,18.888,2.8

3、e-14,1/18等等。數(shù)值的絕對精度是eps,這是一個很小的數(shù)字,但不是零。為了避免除以0,我們經(jīng)常在編程中使用eps。值的范圍是10e-308 10e308。2)變量名的規(guī)則變量名和函數(shù)名區(qū)分大小寫。例如,“我的數(shù)據(jù)”和“我的數(shù)據(jù)”不是變量。MATLAB有自己的保留函數(shù)名,如eps、sin、cos、real、printf等。還包括所有的MATLAB命令。在命名變量時,我們不應(yīng)該與這些保留的子對象沖突。具體規(guī)定如下:變量名的第一個字符必須是英文字母,最多可包含31個字符。變量名不能有空格或標(biāo)點(diǎn)符號,但可以有下劃線,如my_var1。變量不需要預(yù)先指定,它們是由賦值語句定義的。變量的類型由賦值

4、語句等號右側(cè)的數(shù)字形式?jīng)Q定,這避免了高級語言中冗長的解釋語句。在編程過程中,盡量不要與系統(tǒng)變量名沖突。如果給系統(tǒng)變量賦值,變量中的原始值將被沖掉,這不利于計算。只有重新啟動后,才能恢復(fù)原始保留值。有很多系統(tǒng)變量,比如很多小寫函數(shù)sin,cos,exp等等。一些重要的系統(tǒng)變量,如表2.1.1,由變量名、運(yùn)算符和函數(shù)符號表示,類似于高級語言。操作規(guī)則如下:從左到右以相同的優(yōu)先級執(zhí)行操作。指數(shù)級最高,其次是乘法和除法,加減級最低。括號可以改變運(yùn)行順序。運(yùn)算符和變量之間可以有空格,以提高可讀性。示例2.1.2例如,sin(x) 2*cos(y) x2首先計算第三項(xiàng),然后計算第二項(xiàng),然后求和。2.1.2

5、操作MATLAB的常用輔助命令。當(dāng)使用和調(diào)試MATLAB程序時,所有使用的變量都保存在內(nèi)存中。本文介紹了一些常用的輔助命令,可以幫助我們檢查當(dāng)前的內(nèi)存變量及其屬性。當(dāng)之前在命令窗口中輸入了太多命令時,可以通過清除屏幕來清除當(dāng)前的內(nèi)存變量。1)查看記憶變量的命令,在我們定義了一些變量之后,這些變量都駐留在內(nèi)存中供我們隨時使用。當(dāng)我們想要查看內(nèi)存變量時,我們可以使用這兩個命令。其中whos指查看記憶變量的細(xì)節(jié)。假設(shè)我們定義了一個二維數(shù)組A和一個字符串變量b。然后我們使用這兩個命令。見下圖,2) clc清屏命令當(dāng)我們輸入大量命令,或多次調(diào)試程序時,許多命令和程序運(yùn)行結(jié)果在過去的操作中以及許多錯誤信息

6、都留在命令窗口中,這使得命令窗口中的信息過于復(fù)雜。我們可以點(diǎn)擊clc clear screen命令來清除所有冗余信息,或者在源程序的第一行添加這個命令來使輸出更加簡單和清晰。3)清除內(nèi)存變量命令清除完成某個計算任務(wù)后,許多已使用的變量可能會留在計算機(jī)內(nèi)存中。如果我們想要進(jìn)行新的計算,并且總是希望內(nèi)存是干凈的,那么我們可以使用clear命令來清除所有的內(nèi)存變量。在我們編譯的程序中,我們還應(yīng)該在程序開始時培養(yǎng)清除內(nèi)存的命令。4)尋找命令有時我們想知道命令的更詳細(xì)的內(nèi)容和功能。命令窗口中最常用的命令是查找。例如,查找clc,查找clear。參見圖2.1.2,在命令窗口中的輸入,搜索結(jié)果,2.2一維數(shù)

7、組的定義和元素定位,以及變量在MATLAB中的定義都不同于其他高級語言。在MATLAB中定義一個變量或數(shù)組是非常方便的,也就是說,數(shù)組可以通過在程序的任何地方賦值來定義。2.2.1定義一維數(shù)組您可以使用賦值語句定義數(shù)組變量。用方括號展開等號右側(cè)的所有元素,并用逗號或空格分隔。還有其他定義方法,具體例子如下:1)逐元素輸入法:等號右邊的所有元素都用方括號展開,元素之間用逗號或空格隔開。這是最簡單也是最常用的創(chuàng)作方法。示例2.2.1建立了具有九個元素的一維數(shù)組。A=1,2,3,4,5,6,7,8,9%定義9個元素的數(shù)組a=1 2 3 4 5 6 7 8 9,2)冒號生成方法:b=x : step

8、: y%以x為起點(diǎn),y為終點(diǎn)。步驟注意:冒號必須是英文的,或者所有的MATLB命令都是英文的。當(dāng)步長為1時可以省略。示例2.2.2 B=1:2:10B=1 35793)固定數(shù)量線性抽樣方法該抽樣方法確定給定范圍內(nèi)距離相等的樣本數(shù)量。這種方法非常實(shí)用,特別適合定義大數(shù)組例2.2.2。取A和B之間的n個采樣點(diǎn),其中x=linspace (a,B,n) c=linspace (1,5,6)c=1.0000 1.8000 2.6000 3.4000 4.2000 5.0000在1 2.2.2一維數(shù)組元素的定位和運(yùn)算,MATLAB提供了許多方法來定位數(shù)組中的元素,還可以在數(shù)組中生成子數(shù)組。要查找數(shù)組中的

9、元素,可以在數(shù)組名稱中添加括號,其中整數(shù)決定了整數(shù)在數(shù)組中的位置。示例2.2.3定義一個從1到6的隨機(jī)數(shù)組x,并對其進(jìn)行定位和操作。X=隨機(jī)(6)%從1到6的整數(shù)的隨機(jī)組合x=5 6 3 4 2 1 x(4)%查詢數(shù)組X的第四個元素.Ans=4 x(1 2 4 5)%查詢數(shù)組x的第一、第二、第四和第五個元素的子數(shù)組。Ans=5 6 4 2 x(1:3)%查詢由前三個元素組成的子數(shù)組ans=5 6 3 x(2:end)%查詢包括第二個元素之后的所有元素。Ans=63421x (:-1:1)%由前三個元素組成的子陣列倒置ans=3 6 5,y=x(find(x5)%由大于5y=6 x(1 2 3

10、4 3 2 1)的元素組成的子陣列根據(jù)數(shù)組元素的位置重新定義元素多于原始數(shù)組的數(shù)組。ans=3 2 1 5 1 2 3 X(3)=0%將前面示例中的第三個元素重新分配給0x=320546x (14)=1,并將當(dāng)前X數(shù)組的第一個和第四個元素分配給1。對于x=1 2 0 1 4 6以上的數(shù)組有許多操作命令,在科學(xué)計算中經(jīng)常需要對數(shù)組進(jìn)行積分、變換、查找和重新賦值。靈活運(yùn)用這些操作非常重要,讀者應(yīng)該逐步掌握。2.3二維數(shù)組的定義和元素定位。定義二維數(shù)組的方法有很多,包括直接生成法、命令生成法和生成三維圖形數(shù)據(jù)的網(wǎng)格命令。我們已經(jīng)介紹了直接定義方法。二維數(shù)組的直接輸入有三個元素。它們是:(1)數(shù)組輸入

11、用方括號括起來。(2)數(shù)組的行用分號分隔。(3)數(shù)組元素用逗號或空格分隔。示例2.3.1我們想要生成以下二維數(shù)組,方法1: A=1,2,3;4,5,6方法2: A=1 23 456,注意分號的使用,2.3.2將硬盤數(shù)據(jù)讀入變量,加載、讀取、導(dǎo)入等命令都是讀取數(shù)據(jù)的命令。示例2.3.2從硬盤讀取各種數(shù)據(jù)并定義數(shù)組(1)我們從計算機(jī)e: disk上的數(shù)據(jù)目錄中的土壤數(shù)據(jù)文件soil.txt讀取并定義一個二維數(shù)組。A=加載(e:datasoil.txt) %使用加載命令將現(xiàn)有文本數(shù)據(jù)讀入a=77.3000 13.0000 9.7000 1.5000 6.4000 82.5000 10.0000 7.

12、5000 1.5000 6.5000 66.9000 20.6000 12.5000 2.3000 7.00000 47在線公布的8個觀察井的excel格式中,有100多項(xiàng)生化指標(biāo)和444個隨時間采樣的樣本。對于如此大的數(shù)據(jù),我們讀入并定義數(shù)組A和數(shù)組B,這樣我們就可以進(jìn)行各種統(tǒng)計分析。數(shù)據(jù)表的一部分見圖2.3.1,讀取程序如下:清除%清除屏幕和清除內(nèi)存,B=xls read(e : poll well . xls);%讀取excel格式的文件圖(A(:86),-R)% 10)%均勻分布隨機(jī)數(shù)生成器生成110的正整數(shù)數(shù)組,n=4 9 4 8 5 2 6 8 0 r=randn (4,4)%使用

13、標(biāo)準(zhǔn)正態(tài)分布隨機(jī)數(shù)生成器生成44個數(shù)組r=1.0668 0.2944-0.6918-1.4410 0.0593-1.3362 0.8580 0.5711-0.0956 0.7143 1.2540-0 示例1: x,y=網(wǎng)格(1:3,10:14)x=1 23y=10 10 10 12 3 11 11 12 12 12 3 13 13 12 3 14 14 14注意:這里,數(shù)組x和y是二維數(shù)組。例如,生成一個三維函數(shù)數(shù)組并繪制一個圖形。x=-1:0.1:1;y=x;%在區(qū)間-1,1中,取X和Y,y=網(wǎng)格網(wǎng)格(X,y)%,在X-Y平面上生成網(wǎng)格數(shù)據(jù),Z=X.2 Y.2%,計算每個網(wǎng)格點(diǎn)的函數(shù)值,Z網(wǎng)

14、格(X,Y,Z)%,并隱藏一個帶有空間函數(shù)的網(wǎng)絡(luò)圖。伊拉貝爾(Y);ZL Abel(Z);標(biāo)題(網(wǎng)格命令圖),2.3.4 MATLAB自己的函數(shù)數(shù)據(jù),示例2.3.5通過颶風(fēng)數(shù)據(jù)繪制動態(tài)風(fēng)向圖,通過負(fù)載風(fēng)命令生成數(shù)據(jù)x,y,z,u,v,w。這里,x,y,z,y和z是風(fēng)的某一點(diǎn)的位置坐標(biāo),而u,v,w和w是相應(yīng)點(diǎn)的風(fēng)力和方向。負(fù)載風(fēng)力%讀取颶風(fēng)數(shù)據(jù),x,y,z,u,v和w都已進(jìn)入內(nèi)存sxsy SZ=網(wǎng)格(80,20:1336055,5);verts=stream3(x,y,z,u,v,w,sx,sy,SZ);sl=流線(verts);iverts=interstream speed(x,y,z,u,v,w,verts . 025);軸緊;視圖(30,30);daspect(1 1 .125) camproj透視圖;Camva (8)設(shè)置(GCA,繪圖模式,快速)粒子流盒(伊弗茨,35,動物,10,粒子排列,打開),2.4二維陣列搜索和定位,這是科學(xué)計算中經(jīng)常使用的。例如,驗(yàn)證一個矩陣是否是正定矩陣,從矩陣中取出一個子矩陣或一些元素,找出給定點(diǎn)的切平面和法向量并繪制圖形,切割圖形等。都涉及到數(shù)據(jù)定位的問題。

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論