Presentation is loading. Please wait.

Presentation is loading. Please wait.

本章學習目標 認識陣列裡元素的結構 學習多維陣列的建立 學習編修矩陣的內容 學習基本的矩陣數學運算

Similar presentations


Presentation on theme: "本章學習目標 認識陣列裡元素的結構 學習多維陣列的建立 學習編修矩陣的內容 學習基本的矩陣數學運算"— Presentation transcript:

1 本章學習目標 認識陣列裡元素的結構 學習多維陣列的建立 學習編修矩陣的內容 學習基本的矩陣數學運算
第四章 陣列的基本操作與運算 本章學習目標 認識陣列裡元素的結構 學習多維陣列的建立 學習編修矩陣的內容 學習基本的矩陣數學運算

2 向量元素的操作 (1/2) >> v1=[6 7 8 9] v1 = >> v1(:) 6 7 8 9 ans =
>> 2*v1+1 ans = >> v1(2) 7 >> v1([2,4]) >> v1([2 4]) >> v1(:) ans = 6 7 8 9 >> v1([2]) >> v1(3)=0 v1 = >> v1(5) ??? Index exceeds matrix dimensions.

3 向量元素的操作 (2/2) >> v1(7)=12 v1 = >> v1(1:2:end)
>> v1(3:5)=1 >> v1(end) ans = 12 >> v1(end-1) >> v1(1:2:end) ans = >> v1(end:-1:1) >> v1(6)=[] v1 = >> v1(5:end)=[]

4 矩陣元素的操作 (1/2) >> M=[1 2 3 4;5 6 7 8;9 10 11 12] M =
>> M(2,3) ans = 7 >> M(3,[1 2 3]) >> M(3,1:3) >> M(3,:) >> M(end,3) ans = 11 >> M(1:2,4) 4 8 >> M(:,2:3) >> M(end,2:3)

5 矩陣元素的操作 (2/2) >> M=[M,[4;7]] M = >> M(2,3)=99 1 3 4 M =
>> M=[[8,9,10];M] >> M(3:-1:1,:) ans = >> M(2,:)=0 >> M(2,3)=99 M = >> M(end,:)=[] >> M(:,[2,4])=[] >> M(1,2)=[] Subscripted assignment dimension mismatch.

6 矩陣的索引值之結構 Matlab的矩陣是利用「以行為主」的結構來儲存 每一個陣列可以看成是由數個行向量串接而成
存取矩陣的元素時,可以使用一維或二維索引值來存取

7 矩陣的索引值的範例 >> M=[3 6 4 3;7 4 9 8;0 4 3 1] M = 3 6 4 3 7 4 9 8
>> M(2,3) ans = 9 >> M(8) >> M(4:7) >> M([5;7;9]) 4 3 > M([4 6;8 9]) ans = >> M(:) 3 7 6 4 9 8 1

8 矩陣元陣的提取

9 矩陣元陣提取的範例 >> M([1,3],[1,3,4]) ans = 3 4 3 >> M(4:6)=0
>> M(2:3,1:2) >> M(4:6)=0 M = >> M(2:3,2:4)=1 >> M([4,8,12])=[]

10

11 一維與二維索引值的轉換 >> ind=sub2ind([3,4],2,3) ind = 8
>> [row,col]=ind2sub([3,4],8) row = 2 col = 3 >> [row,col]=ind2sub([3,4],[8,4,12]) row = col = >> ind=sub2ind([3,4],row,col) ind =

12 多維陣列 陣列的維度多於二維,稱為多維陣列 三維陣來必須以列、行與頁三個維度來描述

13 建立三維陣列的範例 >> A(:,:,1)=[1 2 3 4;5 6 7 8;9 10 11 12]
>> A(:,:,2)=[ ; ; ] A(:,:,1) = A(:,:,2) = >> size(A) ans = >> ndims(A) 3 >> numel(A) 24 >> A(11:14) >> A(1,3,2) 2

14 常用的陣列建立函數

15 陣列建立函數使用範例 >> eye(3,4) ans = 1 0 0 0 0 1 0 0 0 0 1 0
>> diag([1 2 3]) >> magic(3) >> magic(4) >> zeros(3) ans = >> zeros(2,3) >> ones(3,2) >> eye(4)

16 建立亂數陣列

17 亂數陣列的使用範例 >> randi(9,[2,5]) >> rng(999) ans = 2 4 2 3 2
>> randi([0,1],[1,6]) >> rand() 0.9501 >> rand(3) >> rng(999) >> R=randi(9,[1,8]) R = >> randi(9,[1,2]) ans = 8 5 >> randi(9,[1,1]) 2 >> randi(9,[1,3])

18 測試亂數分佈的情況 >> B=randi([1,24],[1,10000]); >> hist(B,1:24)
>> A=randn(1,10000); >> B=randi([1,24],[1,10000]); >> hist(B,1:24) >> hist(A,-4:0.2:4)

19 陣列元素的提取

20 元素的提取的範例 >> diag(A,2) >> A=magic(4) ans = A = 3 16 2 3 13
8 >> triu(A,1) >> tril(A,-2) >> A=magic(4) A = >> diag(A) ans = 16 11 6 1 >> diag(A,-1)'

21 陣列元素的重排

22 重排陣列元素的範例 >> A=magic(3) >> reshape(A,2,4) A =
>> fliplr(A) ans = >> flipdim(A,2) >> reshape(A,1,9) >> reshape(A,2,4) Error using reshape To RESHAPE the number of elements must not change. >> repmat(A,2,2) ans = >> repmat(9,[3,4,2]) ans(:,:,1) = ans(:,:,2) =

23 陣列的合併 >> A=[1 2 3;3 4 5] A = 1 2 3 3 4 5 >> B=2*A B =
>> B=2*A B = >> [A,B] ans = >> [A;B]

24 cat() 的使用範例 >> cat(3,A,B) >> cat(1,A,B) ans(:,:,1) = ans =
ans(:,:,2) = >> cat(4,A,B) ans(:,:,1,1) = ans(:,:,1,2) = >> cat(1,A,B) ans = >> cat(2,A,B) >> cat(2,A,A,B)

25 基本的矩陣運算

26 矩陣運算的範例 (1/2) >> [2,3]*A >> A=[2 4;3 1] ans = A = 13 11
>> A*[2,3] Error using * Inner matrix dimensions must agree. >> A*[1;5] 22 8 >> A*B >> A' >> A=[2 4;3 1] A = >> B=[3 2;4 6] B = >> A+3 ans = >> A+B

27 矩陣運算的範例 (2/2) >> inv(A) ans = >> Z^2 -0.1000 0.4000 ans =
>> det(A) -10 >> M=expm(A) M = >> logm(M) >> Z=sqrtm(A) i i i i >> Z^2 ans = i i i i >> real(Z^2) >> A^0.5 i i i i >> A^-1

28 矩陣的左除與右除 左除「\」與右除「/」運算子,可分別用AX=B與XA=B來計算:

29 例如,設 若要求解向量 X,則 上式可以寫上 X=inv(A)*B,或用 A 來左除 B,即 >> A\B

30 右除是用在另外的一種情況,例如,設 上式可以寫上 X=B*inv(A),或用 B 右除 A ,即 >> B/A

31 陣列元素對元素的運算 >> A.*B >> A=[2 4;3 1] ans = A = 2 4 6 8 3 1
>> B=[3 2;4 6] B = >> A*B ans = >> A.*B ans = >> A^3 >> A.^3

32

33 Exercises(1/2) Please rearrange m to be and Please solve:

34 Exercises(2/2) 計算 函數值: , , 500筆資料 ,並利用PLOTS標籤簡單繪製其圖形。


Download ppt "本章學習目標 認識陣列裡元素的結構 學習多維陣列的建立 學習編修矩陣的內容 學習基本的矩陣數學運算"

Similar presentations


Ads by Google