Julia語言中矩陣常用操作
阿新 • • 發佈:2018-12-10
1.1 矩陣的生成
生成一個4行4列的矩陣, 這裡使用1~16數字. 注意, 這裡生成矩陣時, 需要首先定義一個空的陣列, 然後再進行填充.
mat = Array(Int32,4,4)
4×4 Array{Int32,2}:
125804192 256236432 79364176 79364176
0 0 0 0
79234864 79266064 125805712 248775184
0 0 0 0
mat[:]=1:16
mat
4×4 Array{Int32,2}: 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
也可以使用reshape構建矩陣
reshape(1:15,3,5)
3×5 Base.ReshapedArray{Int64,2,UnitRange{Int64},Tuple{}}:
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15
1.2 提取主對角線
diag(mat)
4-element Array{Int64,1}:
1
6
11
16
1.3 生成對角線為1的對角矩陣
eye(4)
4×4 Array{Float64,2}: 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0
1.4 提取矩陣的下三角
tril(mat)
4×4 Array{Int64,2}:
1 0 0 0
2 6 0 0
3 7 11 0
4 8 12 16
1.5 提取矩陣的上三角
triu(mat)
4×4 Array{Int64,2}:
1 5 9 13
0 6 10 14
0 0 11 15
0 0 0 16
1.6 矩陣轉置
mat'
4×4 Array{Int64,2}:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1.7 矩陣相乘
a = [[1,3] [2,4]]
2×2 Array{Int64,2}:
1 2
3 4
b = [[2,4] [3,5]]
2×2 Array{Int64,2}:
2 3
4 5
對應數值相乘
a.*b
2×2 Array{Int64,2}:
2 6
12 20
矩陣相乘
a*b
2×2 Array{Int64,2}:
10 13
22 29
1.8 矩陣求逆
inv(a)
2×2 Array{Float64,2}:
-2.0 1.0
1.5 -0.5
inv(a)*a
2×2 Array{Float64,2}:
1.0 0.0
2.22045e-16 1.0