




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、20 Aug 2010,Matlab Programming Language,周金柱 E-mail: xidian_ Tel:電子裝備結(jié)構(gòu)設(shè)計教育部重點實驗室 Key Laboratory of Electronic Equipment Structures of Ministry of Education,第2章 MATLAB矩陣及運算,2.1 Matlab數(shù)據(jù) 2.2 變量和賦值 2.2.1 變量的命名 2.2.2 賦值語句 2.2.3 數(shù)據(jù)的輸出格式 2.2.4 預(yù)定義變量 2.2.5 內(nèi)存變量的管理 2.3 Matlab矩陣 2.3.1 矩陣的建立 2.3.
2、2 冒號表達(dá)式 2.3.3 矩陣的操作 2.3.4 特殊的矩陣,2.1數(shù)據(jù)-特點,矩陣是MATLAB最基本、最重要的數(shù)據(jù)對象。 向量可以看成是僅有一行或一列的矩陣。 單個數(shù)據(jù)(標(biāo)量)可以看成是矩陣的特例。 一般情況下,矩陣的每個元素必須具有相同的數(shù)據(jù)類型,在實際應(yīng)用中,有時需要將不同類型的數(shù)據(jù)構(gòu)成矩陣的元素,也就是結(jié)構(gòu)體(Structure)和元胞(Cell)數(shù)據(jù)類型。,2.1數(shù)據(jù)-類型,MATLAB 7.3定義了15種基本的數(shù)據(jù)類型,包括整型、浮點型、字符型和邏輯型等,用戶甚至可以定義自己的數(shù)據(jù)類型。,變量是數(shù)值計算的基本單元。 MATlab語言與其他高級語言不同, 變量使用時無需事先定義,
3、其名稱就 是第一次合法出現(xiàn)時的名稱,因此使 用起來很便捷。,練習(xí),2.2變量和賦值,MATLAB的變量命名規(guī)則如下: 變量名區(qū)分字母的大小寫。例如,“a”和“A” 是不同的變量。 變量名不能超過63個字符,第63個字符后的字符被忽略。 變量名必須以字母開頭,變量名的組成可以是任意字母、 數(shù)字或者下劃線,但不能含有空格和標(biāo)點符號(如,。% 等)。 不合法例子:1 1 a/b a-1 變量1 關(guān)鍵字(如if、while等)不能作為變量名。 MATLAB提供的標(biāo)準(zhǔn)函數(shù)名以及命令名必須用小寫字母。,練習(xí),2.2.1變量的命名,2.2.2賦值語句,(1) 變量=表達(dá)式 (2) 表達(dá)式 一般地,運算結(jié)果在
4、命令窗口中顯示出來。如果在語句的最后加分號,那么,MATLAB僅僅執(zhí)行賦值操作,不再顯示運算的結(jié)果。 在MATLAB語句后面可以加上注釋,注釋以%開頭,后面是注釋的內(nèi)容。 例2.1 計算表達(dá)式的值,并將結(jié)果賦給變量x,然后顯示出結(jié)果。 在MATLAB命令窗口輸入命令: x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i) %計算表達(dá)式的值,練習(xí),2.2.3 數(shù)據(jù)的輸出格式,MATLAB用十進(jìn)制數(shù)表示一個常數(shù),具體可采用日常記數(shù)法和科學(xué)記數(shù)法兩種表示方法。 在命令窗口中,默認(rèn)情況下當(dāng)數(shù)值為整數(shù)時,數(shù)值計算的結(jié)果以整數(shù)顯示;當(dāng)數(shù)值為實數(shù)時,以小數(shù)點后四位的精度近似顯示,即以短(s
5、hort)格式顯示;如果數(shù)值超過這一范圍,則以科學(xué)技術(shù)法顯示結(jié)果。,例:a=1 a=1 b=3.1416 b=3.1416 c=0.00005 c=5.0000e-005,數(shù)值計算結(jié)果的顯示格式 :,數(shù)據(jù)輸出時用戶可以用format命令設(shè)置或改變數(shù)據(jù)輸出格式。format命令的格式為: format 格式符 注意,format命令只影響數(shù)據(jù)輸出格式,而不影響數(shù)據(jù)的計算和存儲。,例:1.format short 314.159 表示為 314.1590 3141.59 表示為 3.1416e+003 2.format short e pi 表示為 3.1416e+000 3.format rat
6、 pi 表示為 355/113,2.2.4 預(yù)定義變量,在MATLAB工作空間中,還駐留幾個由系統(tǒng)本身定義的變量。它們有特定的含義,在使用時,應(yīng)盡量避免對這些變量重新賦值。,2.2.5 內(nèi)存變量的管理,1. 內(nèi)存變量的顯示與刪除 who和whos這兩個命令用于顯示在Matlab工作空間中已經(jīng)駐留的變量名清單。 clear命令用于刪除MATLAB工作空間中的變量。 注意,預(yù)定義變量不能被刪除。,2. 工作空間瀏覽器 (1) 工作空間瀏覽器的啟動 (2) 工作空間瀏覽器的操作 通常對于較大矩陣的輸入,可采用數(shù)組編輯器。操作方法: 1)在命令窗口向一個新變量賦空陣 2)在工作空間瀏覽器中打開該變量
7、3)在數(shù)組編輯器中填寫元素值,3. 內(nèi)存變量文件 利用MAT文件(.mat)可以把當(dāng)前MATLAB工作空間中的一些有用變量長久地保留下來。MAT文件是MATLAB保存數(shù)據(jù)的一種標(biāo)準(zhǔn)格式二進(jìn)制文件,擴展名一定是.mat MAT文件的生成和裝入由save和load命令來完成。常用格式為: save 文件名 變量名表 -append-ascii load 文件名 變量名表 -ascii 假定系統(tǒng)存在am D兩個變量,可以將其存放到mydata.mat save mydata am D load mydata am D save d:lxmmydata am D load d:lxmmydata am
8、 D,2.3 Matlab矩陣,Matlab中的數(shù)組可以說是無處不在,任何變量都是以數(shù)組型式存儲和運算的,在Matlab運算中,經(jīng)常要用到標(biāo)量、向量、矩陣和數(shù)組,關(guān)于名稱的定義如下: 空數(shù)組(empty array):沒有元素的數(shù)組; 標(biāo)量(scalar):是指11的矩陣,即為只含一個數(shù)的矩陣; 向量(vector):是指1n或n1的矩陣,即只有一行或者一列的矩陣; 矩陣(matrix):是一個矩形的mn數(shù)組,即二維數(shù)組; 數(shù)組(array):是指多維數(shù)組mnk,其中矩陣和向量都是數(shù)組的特例。,2.3.1 矩陣的建立,在MATLAB中矩陣的創(chuàng)建應(yīng)遵循以下基本常規(guī): 矩陣元素應(yīng)用方括號()括住
9、每行內(nèi)的元素間用逗號(,)或空格隔開 行與行之間用分號(;)或回車鍵隔開; 元素可以是數(shù)值或表達(dá)式。,(一)直接輸入法,將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。 例如A=1 2 3;4 5 6;7 8 9 也可以用回車鍵代替分號。,2.3.1 矩陣的建立,MATLAB提供對復(fù)數(shù)的操作與管理功能,虛數(shù)單位用i或j表示,例如:6+5*i與6+5*j表示同一個復(fù)數(shù)。 復(fù)數(shù)的產(chǎn)生可以有幾種方式: z=a+b*i或z=a+b*j z=a+bi或z=a+bj(當(dāng)b為常數(shù)時) z=r*exp(i*theta) z=complex(
10、a,b) 復(fù)數(shù)矩陣還可以采用另一種輸入方式 R=1,2,3;4,5,6;Q=2,3,4;7,8,9; z=R+i*Q,2.3.1 矩陣的建立,(二)利用M文件建立矩陣,對于比較大且比較復(fù)雜的矩陣,可以為它專門建立一個M文件。 例2.2 利用M文件建立MYMAT矩陣。 (1)啟動有關(guān)編輯程序或MATLAB文本編輯器,并輸入待建矩陣. (2)把輸入的內(nèi)容以純文本方式存盤(設(shè)文件名為mymatrix.m)。 (3)輸入文件名,運行該M文件,就會自動建立一個名為MYMAT的矩陣,可供以后使用。,2.3.1 矩陣的建立,(三)利用MATLAB函數(shù)建立矩陣,幾個產(chǎn)生特殊矩陣的函數(shù): zeros 產(chǎn)生全0矩
11、陣(零矩陣) ones 產(chǎn)生全1矩陣 (么矩陣) eye 產(chǎn)生單位矩陣 rand 產(chǎn)生01間均勻分布的隨機矩陣 randn 產(chǎn)生01間正態(tài)分布的隨機矩陣,2.3.1 矩陣的建立,這幾個函數(shù)的調(diào)用格式相似,下面以產(chǎn)生零矩陣的zeros函數(shù)為例進(jìn)行說明。其調(diào)用格式是: zeros(m) 產(chǎn)生mm零矩陣 zeros(m,n) 產(chǎn)生mn零矩陣。 zeros(size(A) 產(chǎn)生與矩陣A同樣大小的零矩陣 相關(guān)的函數(shù)有: size(A) 返回包含2個元素的向量,分別是A的行數(shù)、列數(shù) length(A) 給出行數(shù)和列數(shù)中的較大者,即 length(A)=max(size(A); ndims(A) 給出A的維
12、數(shù)。 reshape(A,m,n) 它在矩陣總元素保持不變的前提下,將矩陣A重新排成mn的二維矩陣。,2.3.1 矩陣的建立,例2.3 分別建立33、32和與矩陣A同樣大小的零矩陣。 (1)建立一個33零矩陣:zeros(3) (2)建立一個32零矩陣:zeros(3,2) (3)建立與矩陣A同樣大小零矩陣:zeros(size(A) (4)將矩陣xv重新排成25、52矩陣 xv=23,34,65,67,54,38,78,76,32,56; ym=reshape(xv,2,5) newym=reshape(xv,5,2),2.3.1 矩陣的建立,(四)建立大矩陣,大矩陣可由方括號中的小矩陣建立
13、起來。 例如: A=1 2 3;4 5 6;7 8 9; C=A,eye(size(A);ones(size(A),A,2.3.1 矩陣的建立,2.3.2 冒號表達(dá)式,冒號表達(dá)式的一般格式: e1:e2:e3 其中e1為初始值, e2為步長, e3為終止值。冒號表達(dá)式可產(chǎn)生一個由e1開始到e3結(jié)束,以步長e2自增的行向量。 在冒號表達(dá)式中如果省略e2不寫,則步長為1。 當(dāng)e2省略或e20,e1e3; e20, e1e3都為空矩陣。,(1)使用冒號表達(dá)式生成向量,linspace(a,b,n)%生成線性等分向量 logspace(a,b,n)%生成對數(shù)等分向量 說明: a、b、n三個參數(shù)分別表示
14、開始值、結(jié)束值和元素個數(shù); linspace函數(shù)生成從a到b之間線性分布的n個元素的行向量,n如果省略則默認(rèn)值為100; linspace(a,b,n)與a:(b-a)/(n-1):b等價。 logspace函數(shù)生成從10a到10b之間按對數(shù)等分的n個元素的行向量,n如果省略則默認(rèn)值為50。,(2)使用linspace和logspace函數(shù)生成向量,2.3.3 矩陣的操作,MATLAB允許用戶對一個矩陣的單個元素進(jìn)行賦值和操作。而不影響其它元素的值。例如 A=ones(4);A(3,2)=200 只改變該元素的值,而不影響其他元素的值。如果給出的行下標(biāo)或列下標(biāo)大于原來矩陣的行數(shù)和列數(shù),則MAT
15、LAB將自動擴展原來的矩陣,并將擴展后未賦值得矩陣元素置為0 A(4,6)=10 也可以采用矩陣元素的序號來引用矩陣元素。矩陣元素按列編號,先第一列,再第二列,依次類推。 A(6) 顯然,下標(biāo)(subscrip)與序號(index)是一一對應(yīng)的。以mn矩陣A為例,矩陣元素A(i,j)的序號為 (j-1)*m+i。其相互轉(zhuǎn)換關(guān)系也可利用sub2ind和ind2sub函數(shù)求得 sub2ind(size(A),2,3) c,d=ind2sub(size(A),6),1. 矩陣元素,(1)利用冒號表達(dá)式獲得子矩陣,A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i
16、,j)表示取A矩陣第i行、第j列的元素。 A(i:i+m,:)表示取A矩陣第ii+m行的全部元素;A(:,k:k+m)表示取A矩陣第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第ii+m行內(nèi),并在第kk+m列中的所有元素。 A=1,2,3,4,5;11,12,13,14,15;21,22,23,24,25;31,32,33,34,35; A(2:3,4:5) A(2:3,1:2:5) 此外,還可利用一般向量和end運算符等來表示矩陣下標(biāo),從而獲得子矩陣。end表示某一維的末尾元素下標(biāo)。 A=1,2,3,4,5;11,12,13,14,15;21,22,23,24,25;31,
17、32,33,34,35; A(end,:)%取A最后一行元素 A(1,4,3:end)%取A第1、4行中第3列到最后一列元素,(2)利用空矩陣刪除矩陣的元素,在MATLAB中,定義為空矩陣。給變量X賦空矩陣的語句為X=。 注意:X=與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間,只是維數(shù)為0。 將某些元素從矩陣中刪除,采用將其置為空矩陣的方法就是一種有效的方法。 A=1,2,3,4,5;11,12,13,14,15;21,22,23,24,25;31,32,33,34,35; A(:,2,4)=%刪除A的第2列和第4列元素,矩陣的合并就是把兩個以上的矩陣連接起
18、來得到一個新矩陣,“”符號可以作為矩陣合并操作符,命令格式如下: c=a b %將矩陣a和b水平方向合并為c c=a;b%將矩陣a和b垂直方向合并為c,2.矩陣的合并,2.3.3 矩陣的操作,3. 矩陣和數(shù)組函數(shù),1. 矩陣的常用函數(shù) det(x):計算方陣行列式 rank(x):求矩陣的秩 inv(x)求矩陣的逆矩陣 v,d=eig(x):求矩陣的特征向量v和特征值d diag(x):產(chǎn)生矩陣x的對角陣 q,r=qr(x) triu(x)和tril(x):分別產(chǎn)生x的上、下三角矩陣,其 余元素補0 2數(shù)組翻轉(zhuǎn) 常用數(shù)組翻轉(zhuǎn)函數(shù) :flipud(x)、fliplr(x)、flipdim(x,d
19、im)、rot90(x,k),2.3.3 矩陣的操作,4數(shù)組查找 一般用于在比較命令后面,查找非零元素。其命令格式如下: a,b,=find(x)%非0元素下標(biāo)(subscrip) n=find(x) %非0元素序號(index),2.3.3 矩陣的操作,2.3.4 特殊的矩陣,1通用的特殊矩陣常用的產(chǎn)生通用特殊矩陣的函數(shù)有:zeros:產(chǎn)生全0矩陣(零矩陣)。ones:產(chǎn)生全1矩陣(幺矩陣)。eye:產(chǎn)生單位矩陣。rand:產(chǎn)生01間均勻分布的隨機矩陣。randn:產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機矩陣。,例 分別建立33、32和與矩陣A同樣大小的零矩陣。解: (1) zeros(3)
20、 (2) zeros(3,2) (3) 設(shè)A為23矩陣,則可以用zeros(size(A)建立一個與矩陣A同樣大小零矩陣。如,A=1 2 3;4 5 6; %產(chǎn)生一個23階矩陣Azeros(size(A) %產(chǎn)生一個與矩陣A同樣大小的零矩陣,2.3.4 特殊的矩陣,例 建立隨機矩陣:(1) 在區(qū)間20,50內(nèi)均勻分布的5階隨機矩陣。(2) 均值為0.6、方差為0.1的5階正態(tài)分布隨機矩陣。,解: x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5),2.3.4 特殊的矩陣,此外,常用的函數(shù)還有reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩
21、陣A重新排成mn的二維矩陣。如,前面的A, reshape(A,1,6) ans = 1 4 2 5 3 6,2.3.4 特殊的矩陣,2用于專門學(xué)科的特殊矩陣 (1) 魔方矩陣魔方矩陣有一個有趣的性質(zhì),其每行、每列及兩條對角線上的元素和都相等。對于n階魔方陣,其元素由1,2,3,n2共n2個整數(shù)組成。 MATLAB提供了求魔方矩陣的函數(shù)magic(n),其功能是生成一個n階魔方陣。,2.3.4 特殊的矩陣,例 將101125等25個數(shù)填入一個5行5列的表格中,使其每行每列及對角線的和均為565。,解:M=100+magic(5),M = 117 124 101 108 115 123 105 107 114 116 104 106 113 120 122 110 112 119 121 103 111 118 125 102 109,2.3.4 特殊
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際產(chǎn)品授權(quán)分銷合同
- 辦公家具采購合同一
- 商品買賣合同「樣本」
- 商業(yè)地產(chǎn)買賣合同模板范文
- 公司設(shè)立投資合作合同范本
- 礦山棄渣處理合同范本
- 消防及安全整改合同履行細(xì)則
- 校企合作合同新范本
- 土地使用權(quán)出讓合同及物業(yè)銷售細(xì)則
- 躉船結(jié)構(gòu)培訓(xùn)課件
- 2025年黑龍江民族職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案
- 年產(chǎn)60萬噸摻混肥項目可行性研究報告申請立項
- 2025年2月《公共安全視頻圖像信息系統(tǒng)管理條例》學(xué)習(xí)解讀課件
- 2025年江蘇省中職《英語》學(xué)業(yè)水平考試高頻必練考試題庫400題(含答案)
- 2025年濟寧職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 高三一?!吧媾c強弱關(guān)系思辨”審題立意及范文
- 2025年湖南工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 2024年七臺河職業(yè)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 小學(xué)數(shù)學(xué)教學(xué)中小組合作學(xué)習(xí)課件
- 2024年晉中職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 2025年茂名市高三年級第一次綜合測試(一模)物理試卷(含答案)
評論
0/150
提交評論