第二章_矩陣和數(shù)組.ppt_第1頁
第二章_矩陣和數(shù)組.ppt_第2頁
第二章_矩陣和數(shù)組.ppt_第3頁
第二章_矩陣和數(shù)組.ppt_第4頁
第二章_矩陣和數(shù)組.ppt_第5頁
已閱讀5頁,還剩126頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章 矩陣和數(shù)組,MATLAB提供了一種計(jì)算機(jī)高級編程語言M語言 MATLAB提供了不同類型的數(shù)據(jù) MATLAB專門以矩陣作為基本的運(yùn)算單位 MATLAB提供了關(guān)于數(shù)組和矩陣不同的運(yùn)算方法,矩陣和數(shù)組(續(xù)),本章講述的內(nèi)容 矩陣和向量 矩陣運(yùn)算 數(shù)組運(yùn)算 稀疏矩陣 多維數(shù)組,矩陣和數(shù)組(續(xù)),2.1 概述 2.2 創(chuàng)建向量 2.3 創(chuàng)建矩陣 2.4 索引 2.5 基本運(yùn)算 2.6 稀疏矩陣 2.7 多維數(shù)組 2.8 小結(jié),2.1 概述,在M語言中最常用的數(shù)據(jù)類型表現(xiàn)手段和形式就是變量和常量 M語言的基本處理單位是數(shù)值矩陣或者數(shù)值向量 回顧有關(guān)概念 變量和常量 數(shù)組 向量 矩陣,概述(續(xù)),變

2、量和常量 變量:程序運(yùn)行過程中需要改變數(shù)值的量 每一個(gè)變量都具有一個(gè)名字 變量在內(nèi)存中占據(jù)一定的空間 變量必須以字母開頭,后面可以是字母、數(shù)字或者下劃線的組合 MATLAB僅識別前面N個(gè)字符,在不同的操作系統(tǒng)下可以識別的字符個(gè)數(shù)不同 常量:在程序運(yùn)行的過程中不需要改變數(shù)值的量 常量具有名字 在M語言中不存在常量的定義,只在MATLAB中提供一些常用的常數(shù)作為常量,概述(續(xù)),數(shù)組 是有序數(shù)據(jù)的集合 數(shù)組的每一個(gè)成員(元素)都屬于同一種數(shù)據(jù)類型,它們使用同一個(gè)數(shù)組名稱和不同的下標(biāo)來唯一確定數(shù)組中的成員(元素)。 在MATLAB中元胞數(shù)組比較特殊,數(shù)組中的元素可以是不同的數(shù)據(jù)類型。,概述(續(xù)),向

3、量 從編程語言的角度上看,向量其實(shí)就是一維數(shù)組 從數(shù)學(xué)的角度上看,向量就是1N或者N1的矩陣,即行向量或列向量 b1,1 b2,1 B= b3,1 和B=b1,1 b1,2 b1,3 b1,n bn,1,概述(續(xù)),矩陣 是用一對圓括號或方括號括起來,符合一定規(guī)則的數(shù)學(xué)對象 b11 b12 b13 B= b21 b22 b23 b31 b32 b33 對于編程語言,矩陣就是二維的數(shù)組,矩陣和數(shù)組(續(xù)),2.1 概述 2.2 創(chuàng)建向量 2.3 創(chuàng)建矩陣 2.4 索引 2.5 基本運(yùn)算 2.6 稀疏矩陣 2.7 多維數(shù)組 2.8 小結(jié),2.2 創(chuàng)建向量,1. 在命令窗口逐個(gè)輸入元素 例2-1:X=

4、 1 3 pi 3+5i 2. 利用冒號運(yùn)算符創(chuàng)建向量 X=J:INC:K J為向量的第一個(gè)元素,K為向量的最后一個(gè)元素,INC為向量元素遞增的步長 J、INC、K之間必須用“:”間隔 若忽略INC,則默認(rèn)的遞增步長為1 INC可以為正數(shù),也可以為負(fù)數(shù) 例2-2:X=1:10 例2-3:X=1:0.01:1.1,創(chuàng)建向量(續(xù)),3. 定數(shù)線性采樣法:在設(shè)定的“總點(diǎn)數(shù)”下,均勻采 樣生成向量(一維“行”數(shù)組) 使用函數(shù)linspace 和logspace linspace是用來創(chuàng)建線性間隔向量的函數(shù) linspace 的基本語法 X=linespace(X1,X2,n) X1為向量的第一個(gè)元素,

5、X2為向量的最后一個(gè)元素,n為向量具有的元素個(gè)數(shù),函數(shù)將根據(jù)n的數(shù)值平均計(jì)算元素之間的間隔,間隔計(jì)算公式為 若在表達(dá)式中忽略參數(shù)n,則系統(tǒng)默認(rèn)地將向量設(shè)置為100個(gè)元素,創(chuàng)建向量(續(xù)),例2-4 使用linspace函數(shù)創(chuàng)建向量 X=linspace(1,2,5) X= 1.0000 1.2500 1.5000 1.7500 2.0000,創(chuàng)建向量(續(xù)),logspace是用來創(chuàng)建對數(shù)空間的向量 logspace 的基本語法 X=logspace(X1,X2,n) 該函數(shù)創(chuàng)建的向量第一個(gè)元素值為10X1,而最后一個(gè)元素的數(shù)值為10X2,n為向量的元素個(gè)數(shù),元素彼此之間的間隔按照對數(shù)空間的間隔設(shè)

6、置 若在表達(dá)式中忽略參數(shù)n,則系統(tǒng)默認(rèn)地將向量設(shè)置為50個(gè)元素,創(chuàng)建向量(續(xù)),例2-5 使用logspace函數(shù)創(chuàng)建向量 X=logspace(1,3,3) X= 10 100 1000,創(chuàng)建向量(續(xù)),創(chuàng)建列向量 使用分號作為元素與元素之間的間隔 使用轉(zhuǎn)置運(yùn)算符“ ” 例2-6: A=1;2;3;4;5;6 或 A=(1:6) ,矩陣和數(shù)組(續(xù)),2.1 概述 2.2 創(chuàng)建向量 2.3 創(chuàng)建矩陣 2.4 索引 2.5 基本運(yùn)算 2.6 稀疏矩陣 2.7 多維數(shù)組 2.8 小結(jié),2.3 創(chuàng)建矩陣,矩陣的元素可以為任意MATLAB數(shù)據(jù)類型的數(shù)值或?qū)ο?創(chuàng)建矩陣的方法 直接輸入法 使用數(shù)組編輯器

7、,2.3.1 直接輸入法,規(guī)則: 整個(gè)矩陣的元素必須用 括住 同一行的矩陣元素之間必須用逗號或空格分隔 在 內(nèi)矩陣的行與行之間必須用分號分隔,也可以在需要分行的地方用回車鍵間隔 矩陣元素可以是任何MATLAB表達(dá)式 ,可以是實(shí)數(shù) ,也可以是復(fù)數(shù),復(fù)數(shù)用i,j 輸入 例2-7: A = 1,2,3 ; 4,5,6;7,8,9 X = 2 pi/2 ; sqrt(3) 3+5i ,逗號和分號的作用 逗號和分號可作為指令間的分隔符,MATLAB允許多條語句在同一行出現(xiàn)。 分號如果出現(xiàn)在指令后,屏幕上將不顯示結(jié)果。 只要是賦過值的變量,不管是否在屏幕上顯示過,都會存儲在工作空間中,以后可隨時(shí)顯示或調(diào)用

8、。變量名盡可能不要重復(fù),否則會覆蓋 。 例2-8: A = 1,2,3;4,5,6;7,8,9,X= 2 pi/2;sqrt(3) 3+5i ? A = 1,2,3;4,5,6;7,8,9;X= 2 pi/2;sqrt(3) 3+5i ?,直接輸入法(續(xù)),例2-8: A = 1,2,3;4,5,6;7,8,9,X= 2 pi/2;sqrt(3) 3+5i A = 1 2 3 4 5 6 7 8 9 X = 2.0000 1.5708 1.7321 3.0000 + 5.0000i A = 1,2,3;4,5,6;7,8,9;X= 2 pi/2;sqrt(3) 3+5i X = 2.0000

9、1.5708 1.7321 3.0000 + 5.0000i,直接輸入法(續(xù)),冒號的作用 用于生成等間隔的向量,默認(rèn)間隔為1。 例2-9: y = 1:3;4:6;7:9,直接輸入法(續(xù)),2.3.2 數(shù)組編輯器,調(diào)用數(shù)組編輯器的方法 選擇工作空間瀏覽器中的變量,然后單擊工作欄中的按鈕 在工作空間瀏覽器中直接雙擊變量 選擇工作空間瀏覽器中的變量,然后單擊快捷菜單命令Open 在MATLAB命令行窗口中鍵入指令“openvar 變量名” 數(shù)組編輯器僅能編輯、修改向量或矩陣,對于多維數(shù)組,數(shù)組編輯器只能察看數(shù)組的內(nèi)容,不能修改多維數(shù)組的元素,數(shù)組編輯器(續(xù)),利用數(shù)組編輯器完成矩陣的編輯步驟 在

10、命令行窗口中創(chuàng)建一個(gè)新的變量,為其賦任意數(shù)值 如:A=1 打開數(shù)組編輯器,在數(shù)組編輯器中加載相應(yīng)的變量 在數(shù)組編輯器的工具欄中,修改矩陣的行數(shù)和列數(shù),雙擊任意元素修改矩陣的元素值,2.3.3 矩陣的修改,直接修改 在命令行窗口中,可用鍵找到所要修改的矩陣,用鍵移動到要修改的矩陣元素上即可修改。 在數(shù)組編輯器中,可用、鍵找到所要修改的矩陣元素進(jìn)行修改。 指令修改:用A(,)= 來修改。 例2-10: A = 1 2 0; 3 0 5; 7 8 9 A = 1 2 0 3 0 5 7 8 9 A (3, 3) = 0 A = 1 2 0 3 0 5 7 8 0,矩陣和數(shù)組(續(xù)),2.1 概述 2.

11、2 創(chuàng)建向量 2.3 創(chuàng)建矩陣 2.4 索引 2.5 基本運(yùn)算 2.6 稀疏矩陣 2.7 多維數(shù)組 2.8 小結(jié),2.4 索 引,訪問和操作向量或矩陣元素的方法利用矩陣或 向量元素的索引完成相應(yīng)的操作。 注意:MATLAB的矩陣或數(shù)組的索引起始數(shù)值為1 介紹的內(nèi)容 向量元素的訪問 矩陣元素的訪問,2.4.1 向量元素的訪問,訪問向量的元素只要使用相應(yīng)元素的索引即可 訪問向量元素的結(jié)果是創(chuàng)建新的向量 訪問向量的元素直接給出元素在向量中的序號 元素的序號可以是單一的整數(shù) 元素的序號可以是元素序號組成的向量 關(guān)鍵字end在訪問向量元素時(shí),表示向量中最后一 個(gè)元素的序號 訪問向量元素時(shí),序號的數(shù)值必須

12、介于1end之間 可以通過訪問元素的方法,對具體的元素賦值,向量元素的訪問(續(xù)),例2-11 B=3 2 7 4 9 6 1 8 0 5 訪問向量中的元素 B(3) ans = 7 B(1 3 7) ans = 3 7 1 B(1:3:5) ans = 3 4, B(end-3:end) ans = 1 8 0 5 B(1:5,5:-1:1) ans = ? B(1:5;5:-1:1) ans = ?,向量元素的訪問(續(xù)),例2-11 B=3 2 7 4 9 6 1 8 0 5 訪問向量中的元素 B(3) ans = 7 B(1 3 7) ans = 3 7 1 B(1:3:5) ans =

13、3 4, B(end-3:end) ans = 1 8 0 5 B(1:5,5:-1:1) ans = 3 2 7 4 9 9 4 7 2 3 B(1:5;5:-1:1) ans = ?,向量元素的訪問(續(xù)),例2-11 B=3 2 7 4 9 6 1 8 0 5 訪問向量中的元素 B(3) ans = 7 B(1 3 7) ans = 3 7 1 B(1:3:5) ans = 3 4, B(end-3:end) ans = 1 8 0 5 B(1:5,5:-1:1) ans = 3 2 7 4 9 9 4 7 2 3 B(1:5;5:-1:1) ans = 3 2 7 4 9 9 4 7 2

14、 3,向量元素的訪問(續(xù)),例2-12 對向量的元素進(jìn)行賦值 B(3)=-3 B = 3 2 7 4 9 6 1 8 0 5 B(15)= -15 B = Columns 1 through 13 3 2 -3 4 9 6 1 8 0 5 0 0 0 Columns 14 through 15 0 -15,-3,2.4.2 矩陣元素的訪問,訪問矩陣的元素需要使用矩陣元素的索引 使用矩陣元素的行列全下標(biāo)形式A(*,*) 使用全下標(biāo)形式訪問矩陣元素的方法簡單、 直接,同線性代數(shù)的矩陣元素的概念一一 對應(yīng) 使用矩陣元素的單下標(biāo)形式A(*) 矩陣元素的單下標(biāo)是矩陣元素在內(nèi)存中存儲 的序列號,一般地,同

15、一個(gè)矩陣的元素在連 續(xù)的內(nèi)存單元中(元素的排列以列元素優(yōu)先),矩陣元素的訪問(續(xù)),A(1:4,5) A(:,5) A(:,end) A(17:20),A(2:4,2:3) A(2 3 4,2 3),A(1,2) A(5),例13 A=,矩陣元素的訪問(續(xù)),矩陣元素的單下標(biāo)與全下標(biāo)之間的轉(zhuǎn)換關(guān)系 以mn的矩陣為例 第i行第j列的元素全下標(biāo)轉(zhuǎn)換為單下標(biāo) l=(j-1)m+i 例:A(1,2)A(5) m=4,n=5,i=1,j=2 l=(j-1)m+i=(2-1)4+1=5 MATLAB提供的兩個(gè)函數(shù) sub2ind:根據(jù)全下標(biāo)計(jì)算單下標(biāo) ind2sub:根據(jù)單下標(biāo)計(jì)算全下標(biāo),矩陣元素的訪問(

16、續(xù)),例: A=4 10 1 6 2;8 2 9 4 7;7 5 7 1 5;0 3 4 5 8 A = 4 10 1 6 2 8 2 9 4 7 7 5 7 1 5 0 3 4 5 8, sub2ind(size(A),2,2) ans = 6, i,j=ind2sub(size(A),7) i = 3 j = 2,矩陣元素的訪問(續(xù)),使用索引訪問矩陣元素的方法,在索引矩陣或數(shù)組的元素時(shí),若直接用冒號運(yùn)算符且不給任何的參數(shù),則表示選擇該行或列,或維中的所有元素,矩陣元素的訪問(續(xù)),例:用不同的方法訪問矩陣的元素 A=1:25 A=reshape(A,5,5) A= 1 6 11 16 2

17、1 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 A(3,1)或A(3) ans = 3,1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25, A(end,:) ans = 5 10 15 20 25 I=1 3 5;J=2 4; A(I,J) A(1 3 5, 2 4) ans = 6 16 8 18 10 20, A(:,4) ans = 16 17 18 19 20, A(3,:) ans = 3 8 13 18 23,矩陣和數(shù)組(續(xù)),2.1 概述

18、 2.2 創(chuàng)建向量 2.3 創(chuàng)建矩陣 2.4 索引 2.5 基本運(yùn)算 2.6 稀疏矩陣 2.7 多維數(shù)組 2.8 小結(jié),矩陣的基本運(yùn)算 函數(shù) 基本數(shù)學(xué)運(yùn)算規(guī)則 數(shù)組的運(yùn)算 運(yùn)算函數(shù) 運(yùn)算指令,2.5 基本運(yùn)算,2.5.1 矩陣生成函數(shù),例2-14 矩陣生成函數(shù)示例 A=zeros(3) A = 0 0 0 0 0 0 0 0 0 A=ones(3) A = 1 1 1 1 1 1 1 1 1,矩陣生成函數(shù)(續(xù)), A=eye(3) A = 1 0 0 0 1 0 0 0 1 A=rand(3) A = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.60

19、68 0.7621 0.8214, A=randn(3) A = -0.4326 0.2877 1.1892 -1.6656 -1.1465 -0.0376 0.1253 1.1909 0.3273,例2-14 矩陣生成函數(shù)示例 A=magic(3) A = 8 1 6 3 5 7 (15) 4 9 2 A=magic(4) A = 16 2 3 13 5 11 10 8 (34) 9 7 6 12 4 14 15 1,矩陣生成函數(shù)(續(xù)),例2-15 矩陣生成函數(shù)示例 A=pascal(3) ans = tril(A) ans = 1 0 0 1 2 0 1 3 6,矩陣生成函數(shù)(續(xù)),dia

20、g(A) ans = 1 2 6 diag(ans) ans = ?,例2-15 矩陣生成函數(shù)示例 A=pascal(3) ans = tril(A) ans = 1 0 0 1 2 0 1 3 6,矩陣生成函數(shù)(續(xù)),diag(A) ans = 1 2 6 diag(ans),ans = 1 0 0 0 2 0 0 0 6,例2-15 矩陣生成函數(shù)示例 A=pascal(3) ans = tril(A) ans = 1 0 0 1 2 0 1 3 6,矩陣生成函數(shù)(續(xù)),diag(A) ans = 1 2 6 diag(ans), diag(ans) ans = ?,ans = 1 0 0

21、0 2 0 0 0 6,例2-15 矩陣生成函數(shù)示例 A=pascal(3) ans = tril(A) ans = 1 0 0 1 2 0 1 3 6,矩陣生成函數(shù)(續(xù)),diag(A) ans = 1 2 6 diag(ans), diag(ans),ans = 1 0 0 0 2 0 0 0 6,ans = 1 2 6,例2-15 矩陣生成函數(shù)示例 A=pascal(3) ans = tril(A) ans = 1 0 0 1 2 0 1 3 6,矩陣生成函數(shù)(續(xù)),diag(A) ans = 1 2 6 diag(ans), diag(ans),ans = 1 0 0 0 2 0 0

22、0 6,ans = 1 2 6,diag(*) *是向量,則執(zhí)行該指令生成對角矩陣 *是矩陣,則執(zhí)行該指令獲取矩陣的對角線元素,2.5.2 基本矩陣運(yùn)算,1. 矩陣加、減運(yùn)算 (AB、AB) 規(guī)則: 相加、減的兩矩陣必須有相同的行和列,兩矩陣對應(yīng)元素相加減。 MATLAB允許參與運(yùn)算的兩矩陣之一是標(biāo)量,標(biāo)量與矩陣的所有元素分別進(jìn)行加減操作。 例:A=1 2 3;4 5 6 B=3 4 5;7 8 9 C=3 A+B=4 6 8;11 13 15 A+C=4 5 6;7 8 9 B+C=6 7 8;10 11 12,基本矩陣運(yùn)算(續(xù)),2.矩陣乘運(yùn)算 A*B:A矩陣的列數(shù)必須等于B矩陣的行數(shù)。

23、s*A 或 A*s:標(biāo)量可與任何矩陣相乘,標(biāo)量s分別與矩陣A每個(gè)元素相乘。 例: A = 1 2 3; 4 5 6; 7 8 0 ; B= 1; 2; 3 ; C = A*B C = 14 32 23 D = -1; 0; 2 ; F = pi*D F = -3.1416 0 6.2832,基本矩陣運(yùn)算(續(xù)),3. 矩陣除運(yùn)算及線性方程組的解 在線性代數(shù)中沒有矩陣的除運(yùn)算,只有矩陣逆的運(yùn)算,在MATLAB中有兩種矩陣除運(yùn)算。 A/B 矩陣右除,相當(dāng)于 Ainv(B) AB 矩陣左除,相當(dāng)于 inv(A)B 因此,x = AB 是線性方程組Ax=B的解。 例:求解方程組 3x1 + x2 - x

24、3 = 3.6 x1 + 2x2 + 4x3 = 2.1 -x1 + 4x2 + 5x3 = -1.4 A = 3 1 -1 ; 1 2 4 ; -1 4 5 ; B = 3.6 ; 2.1 ; -1.4 ; x = AB x = 1.4818 -0.4606 0.3848,基本矩陣運(yùn)算(續(xù)),4.矩陣乘方 An A自乘n次冪 例 a = 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9 ; a2 ans = 30 36 42 66 81 96 102 126 150,基本矩陣運(yùn)算(續(xù)),數(shù)組運(yùn)算指元素對元素的算術(shù)運(yùn)算,與通常意義上的由符號表示的線性代數(shù)矩陣運(yùn)算不同。 1.數(shù)組加減(+

25、,-)運(yùn)算 規(guī)則: 相加、減的兩數(shù)組必須有相同的行和列,兩數(shù)組對應(yīng)元素相加減。 MATLAB允許參與運(yùn)算的兩數(shù)組之一是標(biāo)量,標(biāo)量與數(shù)組的所有元素分別進(jìn)行加減操作 A+B A- B,2.5.3 基本數(shù)組(元素)運(yùn)算,與矩陣加減運(yùn)算等效,數(shù)組之一也可為標(biāo)量。,2. 數(shù)組乘 () 運(yùn)算 AB A,B兩數(shù)組必須有相同的行和列,兩數(shù)組相應(yīng)元素相乘。 sA 或 As 標(biāo)量與數(shù)組相乘,標(biāo)量s分別與數(shù)組A每個(gè)元素相乘,與 sA 或 As 相同。 例16:A = 1 2 3; 4 5 6; 7 8 9 ; B = 2 4 6; 1 3 5; 7 9 10 ; A.*B ans = 2 8 18 4 15 30

26、49 72 90,基本數(shù)組(元素群)運(yùn)算(續(xù)),A = 1 2 3; 4 5 6; 7 8 9 ; B = 2 4 6; 1 3 5; 7 9 10 ; A*B ans = 25 37 46 55 85 109 85 133 172,3. 數(shù)組除(/ , )運(yùn)算 C=A./B 數(shù)組右除 C(i,j) = A(i,j)/B(i,j) C=A.B 數(shù)組左除 C(i,j) = B(i,j)/A(i,j) A./ B=B. A A./s = s.A A的元素分別被標(biāo)量s除 s./A = A.s 標(biāo)量s分別被A的元素除 例:A = 1 2 3 ; B = 4 5 6 ; C1 = A./B C1 = 0

27、.2500 0.4000 0.5000 C2 = B.A C2 = 0.2500 0.4000 0.5000 C3 = A.B C3 = 4.0000 2.5000 2.0000,基本數(shù)組(元素)運(yùn)算(續(xù)), A = 1 2 3 ; B = 4 5 6 ; A/B ans = 0.4156 AB ans = 0 0 0 0 0 0 1.3333 1.6667 2.0000,4. 數(shù)組乘方(.) A.n A的每個(gè)元素自乘n次 A.p 對A各元素分別求非整數(shù)冪 p.A 以p為底,分別以A的元素為指數(shù)求冪值 C = A.B 元素對元素的冪 C(i,j) = A(i,j) . B(i,j) 例:A =

28、 1 2 3 ; B = 4 5 6 ; X = A.2 X = 1.00 4.00 9.00 Y=A.0.5 Y = 1.0000 1.4142 1.7321,基本數(shù)組(元素)運(yùn)算(續(xù)),C = 3.B Y = 81.00 243.00 729.00 34 35 36 Z = A.B Z = 1.00 32.00 729.00 14 25 36,5. 數(shù)組轉(zhuǎn)置(.) 例: A=1 3 5;2 4 6 A = 1 3 5 2 4 6 A ans = 1 2 3 4 5 6 A. ans = 1 2 3 4 5 6,基本數(shù)組(元素群)運(yùn)算(續(xù)),結(jié)論:對于實(shí)數(shù)矩陣,矩陣轉(zhuǎn)置和數(shù)組轉(zhuǎn)置的計(jì)算結(jié)果是

29、一致的。,例: A=A*i A = 0 + 1.0000i 0 + 3.0000i 0 + 5.0000i 0 + 2.0000i 0 + 4.0000i 0 + 6.0000i A ans = 0 - 1.0000i 0 - 2.0000i 0 - 3.0000i 0 - 4.0000i 0 - 5.0000i 0 - 6.0000i A. ans = 0 + 1.0000i 0 + 2.0000i 0 + 3.0000i 0 + 4.0000i 0 + 5.0000i 0 + 6.0000i,基本數(shù)組(元素)運(yùn)算(續(xù)),結(jié)論:對于復(fù)數(shù)矩陣,矩陣轉(zhuǎn)置和數(shù)組轉(zhuǎn)置的計(jì)算結(jié)果不一致。 矩陣轉(zhuǎn)置運(yùn)算

30、共軛轉(zhuǎn)置 數(shù)組轉(zhuǎn)置運(yùn)算非共軛轉(zhuǎn)置,函數(shù)的主要類別 三角函數(shù) 指數(shù)運(yùn)算函數(shù) 復(fù)數(shù)運(yùn)算函數(shù) 圓整和求余函數(shù) 函數(shù)在處理參數(shù)時(shí),是按照數(shù)組運(yùn)算的規(guī)則進(jìn)行的,2.5.4 基本數(shù)學(xué)函數(shù),三角函數(shù),基本數(shù)學(xué)函數(shù)(續(xù)),指數(shù)運(yùn)算函數(shù),基本數(shù)學(xué)函數(shù)(續(xù)),復(fù)數(shù)運(yùn)算函數(shù),基本數(shù)學(xué)函數(shù)(續(xù)),圓整和求余函數(shù),基本數(shù)學(xué)函數(shù)(續(xù)),例2-16:圓整和求余函數(shù) fix(-1.9) ans = -1 floor(-1.9) ans = -2 round(-1.9) ans = -2 ceil(-1.9) ans = -1,基本數(shù)學(xué)函數(shù)(續(xù)), mod(9,-2) ans = ? rem(9,-2) ans = ?,mod

31、(x,y):ans和y的符號相同 rem(x,y):ans和x的符號相同 如果x和y的符號相同,則函數(shù)mod和rem的結(jié)果相同, mod(-9,2) ans = ? rem(-9,2) ans = ?, mod(9,2) ans = ? rem(9,2) ans = ?,例2-16:圓整和求余函數(shù) fix(-1.9) ans = -1 floor(-1.9) ans = -2 round(-1.9) ans = -2 ceil(-1.9) ans = -1,基本數(shù)學(xué)函數(shù)(續(xù)), mod(9,-2) ans = -1 rem(9,-2) ans = ?,mod(x,y):ans和y的符號相同 r

32、em(x,y):ans和x的符號相同 如果x和y的符號相同,則函數(shù)mod和rem的結(jié)果相同, mod(-9,2) ans = ? rem(-9,2) ans = ?, mod(9,2) ans = ? rem(9,2) ans = ?,例2-16:圓整和求余函數(shù) fix(-1.9) ans = -1 floor(-1.9) ans = -2 round(-1.9) ans = -2 ceil(-1.9) ans = -1,基本數(shù)學(xué)函數(shù)(續(xù)), mod(9,-2) ans = -1 rem(9,-2) ans = 1,mod(x,y):ans和y的符號相同 rem(x,y):ans和x的符號相同

33、 如果x和y的符號相同,則函數(shù)mod和rem的結(jié)果相同, mod(-9,2) ans = ? rem(-9,2) ans = ?, mod(9,2) ans = ? rem(9,2) ans = ?,例2-16:圓整和求余函數(shù) fix(-1.9) ans = -1 floor(-1.9) ans = -2 round(-1.9) ans = -2 ceil(-1.9) ans = -1,基本數(shù)學(xué)函數(shù)(續(xù)), mod(9,-2) ans = -1 rem(9,-2) ans = 1,mod(x,y):ans和y的符號相同 rem(x,y):ans和x的符號相同 如果x和y的符號相同,則函數(shù)mod

34、和rem的結(jié)果相同, mod(-9,2) ans = 1 rem(-9,2) ans = ?, mod(9,2) ans = ? rem(9,2) ans = ?,例2-16:圓整和求余函數(shù) fix(-1.9) ans = -1 floor(-1.9) ans = -2 round(-1.9) ans = -2 ceil(-1.9) ans = -1,基本數(shù)學(xué)函數(shù)(續(xù)), mod(9,-2) ans = -1 rem(9,-2) ans = 1,mod(x,y):ans和y的符號相同 rem(x,y):ans和x的符號相同 如果x和y的符號相同,則函數(shù)mod和rem的結(jié)果相同, mod(-9,

35、2) ans = 1 rem(-9,2) ans = -1, mod(9,2) ans = ? rem(9,2) ans = ?,例2-16:圓整和求余函數(shù) fix(-1.9) ans = -1 floor(-1.9) ans = -2 round(-1.9) ans = -2 ceil(-1.9) ans = -1,基本數(shù)學(xué)函數(shù)(續(xù)), mod(9,-2) ans = -1 rem(9,-2) ans = 1,mod(x,y):ans和y的符號相同 rem(x,y):ans和x的符號相同 如果x和y的符號相同,則函數(shù)mod和rem的結(jié)果相同, mod(-9,2) ans = 1 rem(-9

36、,2) ans = -1, mod(9,2) ans = 1 rem(9,2) ans = ?,例2-16:圓整和求余函數(shù) fix(-1.9) ans = -1 floor(-1.9) ans = -2 round(-1.9) ans = -2 ceil(-1.9) ans = -1,基本數(shù)學(xué)函數(shù)(續(xù)), mod(9,-2) ans = -1 rem(9,-2) ans = 1,mod(x,y):ans和y的符號相同 rem(x,y):ans和x的符號相同 如果x和y的符號相同,則函數(shù)mod和rem的結(jié)果相同, mod(-9,2) ans = 1 rem(-9,2) ans = -1, mod

37、(9,2) ans = 1 rem(9,2) ans = 1,例2-17:圓整和求余函數(shù) sign(9) ans = 1 sign(0) ans = 0 sign(-9) ans = -1,基本數(shù)學(xué)函數(shù)(續(xù)),sign(*) 若*是正數(shù),則ans為1 若*是零,則ans為0 若*是負(fù)數(shù),則ans為-1,用于矩陣(數(shù)組)操作的常用函數(shù),2.5.5 矩陣(數(shù)組)操作函數(shù),例2-18:reshape函數(shù)使用示例 A=1:8 A = 1 2 3 4 5 6 7 8 B=reshape(A,2,4) B = 1 3 5 7 2 4 6 8 C=reshape(A,3,3) ? Error using =

38、 reshape To RESHAPE the number of elements must not change.,矩陣(數(shù)組)操作函數(shù)(續(xù)),不能改變矩陣包含元素的個(gè)數(shù),將矩陣A改成2行4列,也可寫成 B=reshape(1:8,2,4),例2-19:對稱交換函數(shù)使用示例 B = 1 3 5 7 2 4 6 8 fliplr(B) ans = 7 5 3 1 8 6 4 2 flipud(B) ans = 2 4 6 8 1 3 5 7,矩陣(數(shù)組)操作函數(shù)(續(xù)),flipdim函數(shù)的第二個(gè)參數(shù)必須是大于0的整數(shù): 參數(shù)為1時(shí),效果和flipud函數(shù)一致 參數(shù)為2時(shí),效果和fliplr函

39、數(shù)一致, flipdim(B,1) ans = 2 4 6 8 1 3 5 7 flipdim(B,2) ans = 7 5 3 1 8 6 4 2,例2-20:repmat使用示例 A=pascal(2) A = 1 1 1 2 repmat(A,2,3) ans = 1 1 1 1 1 1 1 2 1 2 1 2 1 1 1 1 1 1 1 2 1 2 1 2,矩陣(數(shù)組)操作函數(shù)(續(xù)),repmat函數(shù)的基本語法為: repmat(A,M,N) 作用是將指定的矩陣A復(fù)制MN次,其中M對應(yīng)的是行,N對應(yīng)的是列。,創(chuàng)建復(fù)雜矩陣 使用MATLAB提供的矩陣擴(kuò)展方法完成相應(yīng)矩陣的構(gòu)造 假設(shè)矩陣A

40、為三階方陣,B為二階方陣,由A和B組合構(gòu)成五階方陣C=A O;O B,其中O為相應(yīng)的零矩陣,矩陣(數(shù)組)操作函數(shù)(續(xù)),例2-21: A=reshape(1:9,3,3); B=1 2;3 4; O=zeros(length(A),length(B) O = 0 0 0 0 0 0 C=A O;O B C = 1 4 7 0 0 2 5 8 0 0 3 6 9 0 0 0 0 0 1 2 0 0 0 3 4,矩陣(數(shù)組)操作函數(shù)(續(xù)), E=1 2 3;4 5 6 E = 1 2 3 4 5 6 length(E) ans = 3 F=1 2 3;4 5 6;7 8 9;4 2 7 F = 1

41、 2 3 4 5 6 7 8 9 4 2 7 length(F) ans = ?,例2-21: A=reshape(1:9,3,3); B=1 2;3 4; O=zeros(length(A),length(B) O = 0 0 0 0 0 0 C=A O;O B C = 1 4 7 0 0 2 5 8 0 0 3 6 9 0 0 0 0 0 1 2 0 0 0 3 4,矩陣(數(shù)組)操作函數(shù)(續(xù)), E=1 2 3;4 5 6 E = 1 2 3 4 5 6 length(E) ans = 3 F=1 2 3;4 5 6;7 8 9;4 2 7 F = 1 2 3 4 5 6 7 8 9 4

42、2 7 length(F) ans = 4,提問: A=reshape(1:9,3,3); B=1 2;3 4; C = 1 2 0 0 0 3 4 0 0 0 0 0 1 4 7 0 0 2 5 8 0 0 3 6 9 O=zeros(length(?),length(?) O = ? C = ? ; ? ,矩陣(數(shù)組)操作函數(shù)(續(xù)), C=A O;O B C = 1 4 7 0 0 2 5 8 0 0 3 6 9 0 0 0 0 0 1 2 0 0 0 3 4,提問: A=reshape(1:9,3,3); B=1 2;3 4; C = 1 2 0 0 0 3 4 0 0 0 0 0 1

43、4 7 0 0 2 5 8 0 0 3 6 9 O=zeros(length(B),length(A) O = 0 0 0 0 0 0 C=B O;O A,矩陣(數(shù)組)操作函數(shù)(續(xù)), O=zeros(length(A),length(B) O = 0 0 0 0 0 0 C=B O;O A,創(chuàng)建復(fù)雜矩陣 利用不同的矩陣運(yùn)算,通過矩陣合并運(yùn)算符“ ”將不同的矩陣組合在一起構(gòu)成大矩陣 A=1 2;3 4; B=A,A*2;tril(A),triu(A);A*3,A*4 B = 1 2 2 4 3 4 6 8 1 0 1 2 3 4 0 4 3 6 4 8 9 12 12 16,矩陣(數(shù)組)操作函

44、數(shù)(續(xù)),矩陣和數(shù)組(續(xù)),2.1 概述 2.2 創(chuàng)建向量 2.3 創(chuàng)建矩陣 2.4 索引 2.5 基本運(yùn)算 2.6 稀疏矩陣 2.7 多維數(shù)組 2.8 小結(jié),2.6 稀疏矩陣,矩陣的存儲方式: 1.全元素(Full) 存儲 完全矩陣 2.稀疏(Sparse)存儲稀疏矩陣 稀疏矩陣存在的必要性: 對大多數(shù)元素?cái)?shù)值為0的矩陣,若采用滿陣方式 表示,則0元素將占用相當(dāng)?shù)拇鎯臻g。 稀疏矩陣的特點(diǎn): 只存儲“非零元素”值(按列)和“非零元素”的位置,對大多數(shù)元素?cái)?shù)值為0的矩陣,創(chuàng)建稀疏矩陣 稀疏矩陣建立指令 sparse 1、 B = sparse (A) 例23. A = 2 0 0 0; 0 0

45、 0 1; 0 4 0 0 A = 2 0 0 0 0 0 0 1 0 4 0 0 B = sparse (A) B = (1,1) 2 (3,2) 4 (2,4) 1,一、稀疏矩陣的建立, C=1 2 3 4;5 6 7 8;3 7 2 9; C = 1 2 3 4 5 6 7 8 3 7 2 9 B+C ans = 3 2 3 4 5 6 7 9 3 11 2 9,2、 S = sparse (ir,jc,data,m,n) “三元組”表示法 ir 非零元素所在的行序號 jc 非零元素所在的列序號 data 非零元素的數(shù)值 m 矩陣的行 n 矩陣的列,稀疏矩陣的建立(續(xù)),向量,標(biāo)量,例2

46、4. 15 0 0 22 0 -15 0 11 3 0 0 0 S= 0 0 0 -6 0 0 0 0 0 0 0 0 91 0 0 0 0 0 0 0 28 0 0 0 data=15 91 11 3 28 22 -6 -15; ir=1 5 2 2 6 1 3 1; jc=1 1 2 3 3 4 4 6; S=sparse(ir,jc,data,6,6) S = (1,1) 15 (5,1) 91 (2,2) 11 (2,3) 3 (6,3) 28 (1,4) 22 (3,4) -6 (1,6) -15,稀疏矩陣的建立(續(xù)), full(S) ans = 15 0 0 22 0 -15 0

47、 11 3 0 0 0 0 0 0 -6 0 0 0 0 0 0 0 0 91 0 0 0 0 0 0 0 28 0 0 0,例25 S = sparse (1 3 2,1 2 4,2 4 1,3,4) S = ? full(S) ans = ?,稀疏矩陣的建立(續(xù)),例25 S = sparse (1 3 2,1 2 4,2 4 1,3,4) S = (1,1) 2 (3,2) 4 (2,4) 1 full(S) ans = ?,稀疏矩陣的建立(續(xù)),例25 S = sparse (1 3 2,1 2 4,2 4 1,3,4) S = (1,1) 2 (3,2) 4 (2,4) 1 full

48、(S) ans = 2 0 0 0 0 0 0 1 0 4 0 0,稀疏矩陣的建立(續(xù)),在MATLAB命令行窗口 中鍵入指令help sparfun, 可以得到稀疏矩陣運(yùn)算函 數(shù)列表,稀疏矩陣的建立(續(xù)),稀疏矩陣的常用函數(shù),1、speye(創(chuàng)建單位稀疏矩陣) speye(m,n)在行、列相同位置上的元素值為“1”,其余位置上的元素值為“0” speye(m)是speye(m,m)的簡寫。在對角線上的元素值為“1”,其余位置上的元素值為“0” 例26: A=speye(3,4) A = (1,1) 1 (2,2) 1 (3,3) 1 full(A) ans = 1 0 0 0 0 1 0 0

49、 0 0 1 0,稀疏矩陣的建立(續(xù)), B=speye(3,3), C=speye(3) C = (1,1) 1 (2,2) 1 (3,3) 1 full(C) ans = 1 0 0 0 1 0 0 0 1,B = (1,1) 1 (2,2) 1 (3,3) 1 full(B) ans = 1 0 0 0 1 0 0 0 1,2、find(獲取矩陣非零元素的索引向量)find(A) 例27: S = sparse (1 3 2,1 2 4,2 4 1,3,4) S = (1,1) 2 (3,2) 4 (2,4) 1 find(S) ans = 1 6 11,稀疏矩陣的建立(續(xù)), full

50、(S) ans = 2 0 0 0 0 0 0 1 0 4 0 0,3、nonzeros(獲取矩陣的非零元素向量)nonzeros(A) 例27: S = sparse (1 3 2,1 2 4,2 4 1,3,4) S = (1,1) 2 (3,2) 4 (2,4) 1 nonzeros(S) ans = 2 4 1,稀疏矩陣的建立(續(xù)), full(S) ans = 2 0 0 0 0 0 0 1 0 4 0 0,4、nnz(獲取矩陣的非零元素的個(gè)數(shù))nnz(A) 例28: S = sparse (1 3 2,1 2 4,2 4 1,3,4) S = (1,1) 2 (3,2) 4 (2,

51、4) 1 nnz(S) ans = 3,稀疏矩陣的建立(續(xù)), full(S) ans = 2 0 0 0 0 0 0 1 0 4 0 0,5、nzmax(獲取矩陣的各個(gè)向量的最大長度)nzmax(A) 例29: S = sparse (1 3 2,1 2 4,2 4 1,3,4) S = (1,1) 2 (3,2) 4 (2,4) 1 nzmax(S) ans = 3,稀疏矩陣的建立(續(xù)), full(S) ans = 2 0 0 0 0 0 0 1 0 4 0 0,6、spones(將稀疏矩陣中的非零元素用數(shù)字1代替)spones(A) 例30: S = sparse (1 3 2,1 2

52、 4,2 4 1,3,4) S = (1,1) 2 (3,2) 4 (2,4) 1 A=spones(S) A = (1,1) 1 (3,2) 1 (2,4) 1 full(A) ans = 1 0 0 0 0 0 0 1 0 1 0 0,稀疏矩陣的建立(續(xù)), full(S) ans = 2 0 0 0 0 0 0 1 0 4 0 0,7、 issparse (判斷輸入?yún)?shù)是否為稀疏矩陣)issparse(A):是,則ans為“1” 否,則ans為“0” 例31: S = sparse (1 3 2,1 2 4,2 4 1,3,4) S = (1,1) 2 (3,2) 4 (2,4) 1 i

53、ssparse(S) ans = 1 A=1 2 3;4 5 6; issparse(A) ans = 0,稀疏矩陣的建立(續(xù)),稀疏矩陣和普通矩陣(滿陣)之間可以直接進(jìn)行運(yùn)算,運(yùn)算結(jié)果是滿陣 例32: A = 2 0 0 0; 0 0 0 1; 0 4 0 0; S = sparse (A) S = (1,1) 2 (3,2) 4 (2,4) 1 A+S ans = 4 0 0 0 0 0 0 2 0 8 0 0,二、稀疏矩陣的運(yùn)算,稀疏矩陣和稀疏矩陣之間進(jìn)行運(yùn)算,運(yùn)算結(jié)果是稀疏矩陣 例33 B=0 0 3 0;1 0 0 0;0 5 0 0; T=sparse(B) T = (2,1) 1 (3,2) 5 (1,3) 3 S+T ans = (1,1) 2 (2,1) 1 (3,2) 9 (1,3) 3 (2,4) 1,稀疏矩陣的運(yùn)算(續(xù)), fu

溫馨提示

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

最新文檔

評論

0/150

提交評論