




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章數(shù)據(jù)結(jié)構(gòu)及其運(yùn)算內(nèi)容簡介2.1數(shù)據(jù)類型2.2一維數(shù)組2.3二維數(shù)組2.4高維數(shù)組2.5數(shù)組操作2.6數(shù)組運(yùn)算與矩陣運(yùn)算2.7多項(xiàng)式2.8關(guān)系運(yùn)算、邏輯運(yùn)算和運(yùn)算符2.9字符串?dāng)?shù)組2.10細(xì)胞數(shù)組2.11結(jié)構(gòu)體數(shù)組★★★★★★★★Matlab里共有六種基本數(shù)據(jù)類型,每一種類型可以構(gòu)成一維、二維和多維的數(shù)組。雙精度型(double):雙精度數(shù)值類型,是最常用的類型;字符型(char):字符數(shù)組,每個字符占16位;稀疏型(sparse):雙精度稀疏矩陣,只存儲矩陣中的非0元素;細(xì)胞型(cell):可以存放任意類型數(shù)據(jù);結(jié)構(gòu)體(struct):不同類型的數(shù)據(jù)集合;存儲型(storage):用于圖像處理。2.1數(shù)據(jù)類型數(shù)組(Array)可以是一維的行(或列),也可以是二維或多維的。用戶可以操作整個數(shù)組,也可以操作數(shù)組中的某個或者某些元素。以下函數(shù)可以查看變量的數(shù)據(jù)類型:isa(a,’type’)變量a的數(shù)據(jù)類型名稱如果是type,則返回1,否則返回0。class(a)返回變量a的數(shù)據(jù)類型名稱。whosa查看變量a的詳細(xì)情況。2.2一維數(shù)組逐個元素輸入法冒號運(yùn)算符法線性分隔法對數(shù)分隔法
一維數(shù)組的創(chuàng)建冒號運(yùn)算符的格式是:startv:step:endvStartv:數(shù)組的第一個元素值;Endv:數(shù)組的最后一個元素值;Step:步長,即數(shù)組元素每次增加的值,可正可負(fù),缺省默認(rèn)步長為1。說明線性分割法linspace函數(shù)的調(diào)用格式為:x=linspace(a,b,n)數(shù)組的第一個元素值為a,最后一個元素值為b,數(shù)組中共有n個元素,這n個元素線性均勻分布于a和b之間,即數(shù)組元素依次為:說明對數(shù)分割法logspace函數(shù)的調(diào)用格式為:x=logspace(a,b,n)數(shù)組的第一個元素值為,最后一個元素值為,數(shù)組中共有n個元素,這n個元素的以10為底的對數(shù)值均勻分布與a和b之間,即數(shù)組元素依次為1` 說明formatlonglogspace(1,10,10)logspace(1,10,10)linspace(1,1.0001,10)formatlonglinspace(1,1.0001,10)注意比較下列語句執(zhí)行結(jié)果的區(qū)別MATLAB使用雙精度執(zhí)行所有的計(jì)算。使用format函數(shù)可以控制顯示數(shù)據(jù)結(jié)果的格式;但并不影響計(jì)算及存儲的方式。MATLAB輸出格式默認(rèn)值為5位刻度的固定點(diǎn)值,即等同于formatshort。formatlong
輸出格式為15位。可以用下標(biāo)方式訪問數(shù)組元素。下標(biāo)要用一對圓括號()引起來;下標(biāo)可以是常量,也可以是變量。一維數(shù)組的訪問可以訪問數(shù)組中的單個元素,也可以訪問數(shù)組中的某些元素,即數(shù)組的子數(shù)組。例2.2.12.3二維數(shù)組二維數(shù)組的創(chuàng)建逐個輸入數(shù)組元素值;利用M文件。1.逐個輸入數(shù)組元素值如果數(shù)組內(nèi)元素?cái)?shù)量少,可以直接從鍵盤逐個輸入元素的值,需要遵循的規(guī)則是:整個數(shù)組必須用中括號“[]”括起來;數(shù)組的行與行之間用分號“;”分隔,或者用回車符分隔;每行之間的元素必須用逗號“,”或者空格分隔;分隔符必須在英文狀態(tài)下輸入。即在英文狀態(tài)下輸入分號、括號、方括號、逗號等。說明用M文件實(shí)現(xiàn)對數(shù)組x的輸入和保存,方法如下:在當(dāng)前目錄下,用程序(M文件)編輯器建立一個名為MyData.m的文件;在編輯器中輸入x內(nèi)容;保存MyData.m文件;在命令窗口鍵入MyData,就可以在內(nèi)存中建立數(shù)組x并讀入數(shù)組元素的值。2.利用M文件例2.3.2二維數(shù)組的訪問訪問時(shí)可以用單下標(biāo)也可以用雙下標(biāo);雙下標(biāo)方式訪問:格式為(r,c),其中r為二維數(shù)組的行下標(biāo),c為列下標(biāo),下標(biāo)之間用逗號分隔;單下標(biāo)方式訪問:按照列優(yōu)先規(guī)則排序的,即二維數(shù)組被看作是從第一列開始從左到右依次將各列首位連接而成的一維數(shù)組,單下標(biāo)表示元素在這個一維數(shù)組中的位置;單下標(biāo)和雙下標(biāo)具有對應(yīng)關(guān)系,其值可以通過ind2sub和sub2ind函數(shù)進(jìn)行轉(zhuǎn)換;可以訪問二維數(shù)組的某個元素及其子數(shù)組,可以對元素和子數(shù)組賦值。單下標(biāo)和雙下標(biāo)具有對應(yīng)關(guān)系列優(yōu)先例2.3.3試一試某一維長度為0的數(shù)組稱為空數(shù)組;空數(shù)組用[]表示,表示數(shù)組中沒有元素,但可以表示計(jì)算結(jié)果為“空”;僅僅能用isempty函數(shù)正確判斷數(shù)組是否為空;可以通過給數(shù)組元素賦值空數(shù)組來縮小數(shù)組的大小;盡量不要用空數(shù)組參與邏輯運(yùn)算和關(guān)系運(yùn)算。說明有關(guān)空數(shù)組另外一些數(shù)組的產(chǎn)生方法例2.3.3.1試一試2.5數(shù)組操作標(biāo)準(zhǔn)數(shù)組的生成在Matlab中有相應(yīng)的函數(shù)用來生成全1數(shù)組、全零數(shù)組、對角陣等標(biāo)準(zhǔn)數(shù)組。1.ones功能:生成全1數(shù)組,即數(shù)組中的元素都為1。格式:
Y=ones(n)生成n×n的全1矩陣
Y=ones(size(A))生成和數(shù)組A同樣尺寸的全1數(shù)組
Y=ones(m1,m2,…,mk)生成m1×m2×…×mk維的全1數(shù)組2.zeros功能:生成全0數(shù)組,即數(shù)組中的元素都為0。格式:同ones函數(shù)3.rand功能:生成均勻分布隨機(jī)數(shù)組。格式:同ones函數(shù)3.5randi功能:生成[imin,imax]內(nèi)各整數(shù)均勻分布的m
n維隨機(jī)數(shù)組。格式:randi([imin,imax],m,n)4.randn功能:生成正態(tài)分布隨機(jī)數(shù)組。格式:同ones函數(shù)Exercise1
Weneedrandomintegersinthisproject.Let'sdosometestsontherandi()function.Generate10000randomintegersbetween1and10.Plotahistogramofthem.Dothesediceseemfair?)bar(m);%Plotahistogramofthem試一試5.magic功能:產(chǎn)生兩維魔方矩陣。格式:M=magic(n) 產(chǎn)生n×n的對角線元素之和相等的矩陣6.eye功能:產(chǎn)生二維單位矩陣。格式:
Y=eye(n)產(chǎn)生n×n單位陣
Y=eye(n,m)產(chǎn)生n×m單位陣
Y=eye(size(A))產(chǎn)生規(guī)模如A的單位陣Y=eye(m,n,classname)classname是字符串,表示元素的數(shù)據(jù)類型名稱,可取'double','single','int8','uint8','int16','uint16','int32','uint32','int64','uint64'。16位無符號數(shù)16位帶符號數(shù)b=eye(3,4,'int8')*(-1000)
觀察b的顯示結(jié)果最大數(shù)據(jù)b=eye(3,4,'uint8')*(300)b=eye(3,4,'int8')*(-10)b=eye(3,4,'uint8')*(30)試一試7.diag功能:產(chǎn)生對角陣,即矩陣的某個對角線元素不全為0,其他元素為0。格式:
X=diag(v,k)
生成length(v)+k階方陣,并在第k條對角線放置元素v;
X=diag(v)
生成length(v)階方陣,并在主對角線放置元素v;
v=diag(X,k)
返回方陣X的第k條對角線元素構(gòu)成的列向量;
v=diag(X)
返回方陣X的主對角線元素構(gòu)成的列向量。v為行向量,表示對角線元素;k為對角線位置。k=0表示主對角線;k>0表示在主對角線上方的第k條對角線;k<0表示在主對角線下方的第(-k)條對角線。說明X=diag(v,k)例2.5.1試一試數(shù)組操作包括數(shù)組的擴(kuò)展、收縮、重排、元素交換和子數(shù)組訪問等。可以通過兩種方式實(shí)現(xiàn):通過Matlab提供的運(yùn)算符(逗號,分號,括號等)來實(shí)現(xiàn);使用Matlab提供的數(shù)組操作函數(shù)。1.
cat功能:把大小相同的若干數(shù)組,沿著指定維的方向,串接成新數(shù)組。格式:C=cat(dim,A,B) C=cat(dim,A1,A2,A3,A4,...)說明A,B,A1,A2等為被串接數(shù)組,要求這些數(shù)組同維;dim表示串接方向,1表示行,2表示列,3表示頁,以此類推。C=cat(dim,A,B)2.
fliplr功能:沿著垂直中線,左右(Left-Right)對稱交換數(shù)組元素(不超過2維);格式:B=fliplr(A)。功能:沿著水平中線,上下(Up-Down)對稱交換數(shù)組元素(不超過2維);格式:B=flipud(A)。3.flipud4.
rot90功能:逆時(shí)針旋轉(zhuǎn)二維數(shù)組。格式:B=rot90(A) 逆時(shí)針旋轉(zhuǎn)矩陣90度
B=rot90(A,k) 逆時(shí)針旋轉(zhuǎn)矩陣90*k度試一試對比一下旋轉(zhuǎn)二維數(shù)組與矩陣轉(zhuǎn)置。5.repmat功能:按指定維上的數(shù)目,分塊鋪放指定數(shù)組。格式:B=repmat(A,m,n) 沿著第1維鋪放m個A,第2維鋪放n個A。B=repmat(A,[mn])功能:在總元素不變的前提下,重新安排數(shù)組各個維的長度,形成新數(shù)組。格式:B=reshape(A,m,n)B=reshape(A,m,n,p,...)B=reshape(A,[mnp...])B=reshape(A,...,[],...)6.
reshape說明B=repmat(A,[mnp...])B=reshape(A,m,n,p,...)B=reshape(A,[mnp...])A是待重新安排的數(shù)組;m,n,p等是新數(shù)組各個維的長度;[]表示自動計(jì)算某個維的長度而無需用戶指定。7.tril
功能:提取矩陣的下三角元素,生成下三角陣。格式:L=tril(X)L=tril(X,k)8.triu
功能:提取矩陣的上三角元素,生成上三角陣。格式:L=triu(X)L=triu(X,k)說明:X為待提取的矩陣;k為三角陣的分界線位置,含義同diag函數(shù)。例2.5.2試一試?yán)?.5.32.6數(shù)組運(yùn)算與矩陣運(yùn)算數(shù)組運(yùn)算Matlab數(shù)組運(yùn)算是指對數(shù)組中的每個元素進(jìn)行相同的運(yùn)算。1.用數(shù)組運(yùn)算符進(jìn)行數(shù)組運(yùn)算A+B,A-B 數(shù)組加減法運(yùn)算。A.*B,A./B(A除以B)
A.\B
(
B除以A)數(shù)組相乘除,A和B相同位置元素的乘除后作為結(jié)果數(shù)組的元素。
A.^p
數(shù)組各元素求p次冪
A#B A、B數(shù)組對應(yīng)元素間進(jìn)行關(guān)系運(yùn)算,#代表關(guān)系運(yùn)算符
A@B A、B數(shù)組對應(yīng)元素間進(jìn)行邏輯運(yùn)算,@代表邏輯運(yùn)算符
A.′
數(shù)組轉(zhuǎn)置,非共軛轉(zhuǎn)置
s◎A
標(biāo)量s與數(shù)組A運(yùn)算,s與A的每個元素進(jìn)行運(yùn)算,◎代表某個運(yùn)算符2.數(shù)組運(yùn)算函數(shù)三角函數(shù),指數(shù)對數(shù)函數(shù),復(fù)數(shù)函數(shù),取整函數(shù)。表2.6.2A+B 矩陣加法。A-B 矩陣減法。A*B 矩陣乘法,要滿足維數(shù)要求,一般不符合交換律。A/B 矩陣右除,求xB=A的最小二乘解。A\B 矩陣左除,求Bx=A的最小二乘解。 A^p 矩陣乘方。矩陣運(yùn)算A+B,A-B 數(shù)組加減法運(yùn)算。A.*B,A./B(A.\B)數(shù)組相乘除,A和B相同位置元素的乘除后作為結(jié)果數(shù)組的元素。對比一下s*A 標(biāo)量s與矩陣A相乘,標(biāo)量s分別與A的每個元素相乘。expm(A) 矩陣的指數(shù)函數(shù)。inv(A) 矩陣的逆矩陣。說明點(diǎn)運(yùn)算。在算數(shù)運(yùn)算符前面加“.”代表運(yùn)算是按照數(shù)組運(yùn)算規(guī)則進(jìn)行運(yùn)算,否則是按照矩陣運(yùn)算規(guī)則進(jìn)行運(yùn)算的。某個函數(shù)名字后加字母m。通常這兩個函數(shù)的運(yùn)算功能相同,只是加了m的函數(shù)按照矩陣運(yùn)算規(guī)則運(yùn)算,另外按照數(shù)組運(yùn)算規(guī)則運(yùn)算。例2.6.1試一試2.7多項(xiàng)式在MATLAB里,多項(xiàng)式用其系數(shù)行向量表示。多項(xiàng)式:表示為:多項(xiàng)式的創(chuàng)建直接輸入法;poly(A)
若A為方陣,則創(chuàng)建方陣A的特征多項(xiàng)式;poly(a)
如果向量a=[bnbn-1…b1b0],則創(chuàng)建創(chuàng)建全部根為bn,bn-1,…,b1,b0對應(yīng)的多項(xiàng)式。多項(xiàng)式的運(yùn)算多項(xiàng)式加減:+-(同樣長度)使用Matlab的運(yùn)算符+-實(shí)現(xiàn)多項(xiàng)式的加減法;多項(xiàng)式相乘:
p=conv(p1,p2)p為多項(xiàng)式p1和多項(xiàng)式p2的乘積;多項(xiàng)式相除:
[q,r]=deconv(p1,p2)
多項(xiàng)式p1除以多項(xiàng)式p2,商多項(xiàng)式為q,余多項(xiàng)式為r。
dp=polyder(p)
多項(xiàng)式p的導(dǎo)數(shù)多項(xiàng)式為dpdp=polyder(p1,p2)
多項(xiàng)式p1和多項(xiàng)式p2乘積的導(dǎo)數(shù)多項(xiàng)式為dp[num,den]=polyder(p1,p2)
有理分式(p1/p2)的求導(dǎo)后的有理分式為 (num/den)多項(xiàng)式求導(dǎo)多項(xiàng)式求值
pA=polyval(p,A)
按數(shù)組運(yùn)算規(guī)則求多項(xiàng)式p在自變量為A時(shí)的值。
MA=ployvalm(p,A)
按矩陣運(yùn)算規(guī)則求多項(xiàng)式p在自變量為方陣A時(shí)的值。當(dāng)自變量A為矩陣時(shí),多項(xiàng)式中的常數(shù)項(xiàng)a0被當(dāng)作a0*eye(n)處理。多項(xiàng)式求根:r=roots(p)
r為多項(xiàng)式p的根組成的列向量。部分分式分解:[r,p,k]=residue(num,den)
有理分式(num/den)部分分式分解后,r為留數(shù),p為極點(diǎn),k為直項(xiàng)。矩陣的特征多項(xiàng)式:
p=poly(A)
多項(xiàng)式p為矩陣A的特征多項(xiàng)式。例2.7.1邏輯值Matlab定義了邏輯值,包括“邏輯真”和“邏輯假”。在關(guān)系表達(dá)式和邏輯表達(dá)式中的輸入中,任何非0數(shù)為“邏輯真”,只有0為“邏輯假”。關(guān)系表達(dá)式和邏輯表達(dá)式的計(jì)算結(jié)果是一個由0和1構(gòu)成的“邏輯數(shù)組”(LogicalArray’),邏輯數(shù)組中“1”表示真,“0”表示假。2.8關(guān)系運(yùn)算、邏輯運(yùn)算和運(yùn)算符邏輯數(shù)組屬于“數(shù)值數(shù)組”的子類,它可以作為數(shù)值數(shù)組參與數(shù)值計(jì)算,也可以用于數(shù)組尋訪等特殊場合。比如:用邏輯矩陣作為數(shù)組下標(biāo),可以提取數(shù)組中邏輯矩陣真值位置處的元素。關(guān)系運(yùn)算符和邏輯運(yùn)算符遵循數(shù)組運(yùn)算規(guī)則。關(guān)系運(yùn)算符
< 小于 <= 小于等于
> 大于 >= 大于等于
== 等于 ~= 不等于(教材有錯)邏輯運(yùn)算符
數(shù)組邏輯操作、位邏輯操作和先決邏輯操作。數(shù)組邏輯操作:
&邏輯與
|邏輯或
~邏輯非
xor邏輯異或。位邏輯操作函數(shù)(操作數(shù)必須是非負(fù)整型標(biāo)量或者數(shù)組):
bitand位與
bitor位或
bitcmp位非
bitnor位異或先決邏輯運(yùn)算符(要求操作數(shù)為標(biāo)量):
&& 先決與。如果第一個操作數(shù)為假,則不判斷其他操作數(shù),直接給出結(jié)論“假”。
|| 先決或。如果第一個操作數(shù)為真,則不判斷其他操作數(shù),直接給出結(jié)論“真”。例2.8.1邏輯函數(shù)邏輯函數(shù)的運(yùn)行結(jié)果是邏輯矩陣。any(v):
向量v中有非0元素,結(jié)果為1,否則為0;對矩陣的運(yùn)算結(jié)果是行向量。all(v):
向量v中都是非0元素,結(jié)果為1。對矩陣的運(yùn)算結(jié)果是行向量。isequal(A,B):
判斷是否相等。ismember(A,B):
A的元素是B中元素,則A相應(yīng)位置為1,否則為0。判斷特殊數(shù)據(jù)的邏輯函數(shù)
isemptyisfiniteisinfisletterisnanisprimeisrealisspace。判斷數(shù)據(jù)類型的邏輯函數(shù)
iscellischari
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文山職業(yè)技術(shù)學(xué)院《紀(jì)錄片解析》2023-2024學(xué)年第二學(xué)期期末試卷
- 溫州醫(yī)科大學(xué)《跨文化管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省鎮(zhèn)江句容市2025屆中考英語試題模擬試卷(6)英語試題含答案
- 六安市重點(diǎn)中學(xué)2025年初三階段性測試(六)A卷英語試題試卷含答案
- 九江職業(yè)技術(shù)學(xué)院《大氣污染控制工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 正藍(lán)旗2025年數(shù)學(xué)四下期末質(zhì)量檢測試題含解析
- 內(nèi)江師范學(xué)院《數(shù)學(xué)課程論與教學(xué)教法》2023-2024學(xué)年第二學(xué)期期末試卷
- 華中師范大學(xué)《冶金物理化學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 棗莊市滕州市2024-2025學(xué)年三下數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 四川省眉山縣市級名校2025年5月中考三輪模擬試卷化學(xué)試題含解析
- 電磁感應(yīng):“棒-導(dǎo)軌”模型4:單棒-有外力發(fā)電式
- 2025年公務(wù)員考試江西省(面試)試題及答案指導(dǎo)
- 江蘇省期無錫市天一實(shí)驗(yàn)校2025屆初三下學(xué)期第一次模擬考試英語試題含答案
- T∕CFA 0308053-2019 鑄造企業(yè)清潔生產(chǎn)要求 導(dǎo)則
- 中國鹽業(yè)集團(tuán)有限公司 筆試 內(nèi)容
- 全過程工程咨詢投標(biāo)方案(技術(shù)方案)
- DL∕T 1051-2019 電力技術(shù)監(jiān)督導(dǎo)則
- T-CPIA 0056-2024 漂浮式水上光伏發(fā)電錨固系統(tǒng)設(shè)計(jì)規(guī)范
- 2024廣東深圳市龍崗區(qū)總工會招聘社會化工會工作者及事宜筆試歷年典型考題及考點(diǎn)剖析附答案帶詳解
- 公司供應(yīng)商風(fēng)險(xiǎn)管理制度
- 2024北京市大興初二(下)期中數(shù)學(xué)試卷及答案
評論
0/150
提交評論