2021-05-12 14:32:11
matlab矩陣常用指令
在學習《線性代數》時,常需要借助一些常用的矩陣指令,包括常用矩陣快速建立、矩陣元素提取等,請看下文。
1
單位矩陣建立
線上性代數運算時,常需要單位矩陣E,在matlab中可使用eyes函數,如下所示即為其語法:
Y = eye(n)
Y = eye(m,n)
Y = eye([m n])
Y = eye(size(A))
Y = eye
Y = eye(m, n, classname)
作為範例,常用Y = eye(n)指令,比如要3x3單位矩陣,則可以如下指令:
>> Y = eye(3)
輸出:
Y =
1 0 0
0 1 0
0 0 1
2
全零矩陣
線上性代數運算時,有時候需要全零矩陣,可使用zeros函數。
B = zeros(n)
B = zeros(m,n)
B = zeros([m n])
B = zeros(m,n,p,...)
B = zeros([m n p ...])
B = zeros(size(A))
Y = zeros
zeros(m, n,...,classname)
zeros([m,n,...],classname)
以上是其全部語法,常用的指令是:B = zeros(n)與 B = zeros(m,n)如下:
>> B = zeros(3)
輸出:
B =
0 0 0
0 0 0
0 0 0
3
元素全為1陣
在矩陣運算時,會遇到元素全為1矩陣,此時可以藉助於ones函數。
Y = ones(n)
Y = ones(m,n)
Y = ones([m n])
Y = ones(m,n,p,...)
Y = ones([m n p ...])
Y = ones(size(A))
Y = ones
ones(m, n,...,classname)
ones([m,n,...],classname)
如上是其全部語法,其中常用的還是:Y = ones(n) 與 Y = ones(m,n) 如下範例:
>> Y = ones(3)
輸出:
Y =
1 1 1
1 1 1
1 1 1
4
隨機矩陣
在概率分析或是數理推斷時常需要藉助隨機矩陣,在matlab中可使用rand函數實現,其語法如下:
r = rand(n)
r = rand(m,n)
r = rand([m,n])
r = rand(m,n,p,...)
r = rand([m,n,p,...])
r = rand
r = rand(size(A))
r = rand(..., 'double')
r = rand(..., 'single')
當然,常用的指令還是: r = rand(n) 和 r = rand(m,n)
範例:
>> r = rand(3,2)
輸出的是3行2列的隨機矩陣:
r =
0.8147 0.9134
0.9058 0.6324
0.1270 0.0975
5
對角陣
在矩陣分析與計算時,尤其是計算矩陣的秩時,常會化簡矩陣為對角陣,尤其是方陣分析。在matlab中可借助diag函數求特定矩陣的對角陣,如下範例:
>> A = [1,2,3;
4,5,6;
7,8,9];
輸入的矩陣A是3x3方陣,輸入如下指令:
>> diag(A)
函數輸出如下圖所示:
6
提取矩陣三角部分
有時候需要提取矩陣的下三角亦或是下三角元素,可以使用tril或triu提取。
輸入矩陣:
>> A = [1,2,3;
4,5,6;
7,8,9];
下三角提取:
>> trilow = tril(A)
輸出:
trilow =
1 0 0
4 5 0
7 8 9
上三角提取:
>> triup = triu(A)
輸出:
triup =
1 2 3
0 5 6
0 0 9
7
其它作為矩陣運算實驗室,matlab提供許多矩陣運算指令例如矩陣翻轉指令flipud、fliplr,矩陣重排reshape、矩陣求秩rank等,大家可以查閱幫助檔案了解其語法。相關文章