矩阵运算函数

MATLAB

4.7 矩阵运算函数


先介绍几个与矩阵转角有关的函数:rot90, fliplr, flipud,它们的用法及说明请参考以下的例子。

>> A=[2 1 0; -2 5 -1; 3 4 6];

>> B=rot90(A) % 将A矩阵逆时针转90度

B =

0 -1 6

1 5 4

2 -2 3

>> A=[1 2; 4 8; -2 0];

>> B=fliplr(A); % 将A矩阵从左向右翻

>> C=flipud(A); % 将A矩阵从上向下翻

>> B, C

B =

2 1

8 4

0 -2

C =

-2 0

4 8

1 2

另外函数 reshape 则是用来调整矩阵改形,即是在矩阵的元素总数不变下,改变其列及行的大小。见以下范例。

>> A=[2 5 6 -1; 3 -2 10 0];

>> B=reshape(A,4,2); % 将A矩阵改成 4x2 的矩阵

>> C=reshape(A,1,8); % 将A矩阵改成 8x1 的矩阵

>> B, C

B =

2 6

3 10

5 -1

-2 0
C =

2 5

6 1

3 -2

10 0

我们如果要将矩阵内的特定元素读取出来,或是将特定元素以其它值取代,以下的函数diag, triu, tril 提供了这方面的功能。diag是只保留原矩阵的主对角线 (main diagonal) 的元素,其余的元素以零取代。triu, tril 则是分别产生上三角形及下三角形矩阵,其余的元素也以零取代。以下的例子详细的说明这三个函数的用法:

>> V=[1 2 3];

>> A=diag(V)

A =

1 0 0

0 2 0

0 0 3

>> A=[1:2:7; 3:3:12; 4:-1:1; 1:4]

A =

1 3 5 7

3 6 9 12

4 3 2 1

1 2 3 4

>> B=triu(A)

B =

1 3 5 7

0 6 9 12

0 0 2 1

0 0 0 4

>> C=triu(A,-1)

C =

1 3 5 7

3 6 9 12

0 3 2 1

0 0 3 4

>> D=triu(A,3)

D =

0 0 0 7

0 0 0 0

0 0 0 0

0 0 0 0

>> B=tril(A)

B =

1 0 0 0

3 6 0 0

4 3 2 0

1 2 3 4

>> C=triu(A,-1)

C =

0 0 0 0

3 0 0 0

4 3 0 0

1 2 3 0

>> D=triu(A,3)

D =

1 3 5 7

3 6 9 12

4 3 2 1

1 2 3 4



上一页 下一页 讲义大纲