級聯
從較小的矩陣構建矩陣通常很有用。
水平連線
矩陣(和向量,被視為列向量)可以使用 hcat
函式進行水平連線。
julia> hcat([1 2; 3 4], [5 6 7; 8 9 10], [11, 12])
2×6 Array{Int64,2}:
1 2 5 6 7 11
3 4 8 9 10 12
有方便的語法,使用方括號表示法和空格:
julia> [[1 2; 3 4] [5 6 7; 8 9 10] [11, 12]]
2×6 Array{Int64,2}:
1 2 5 6 7 11
3 4 8 9 10 12
這種表示法可以與線性代數中使用的塊矩陣的符號緊密匹配:
julia> A = [1 2; 3 4]
2×2 Array{Int64,2}:
1 2
3 4
julia> B = [5 6; 7 8]
2×2 Array{Int64,2}:
5 6
7 8
julia> [A B]
2×4 Array{Int64,2}:
1 2 5 6
3 4 7 8
請注意,你不能使用 []
語法水平連線單個矩陣,因為這會建立一個矩陣的單元素向量:
julia> [A]
1-element Array{Array{Int64,2},1}:
[1 2; 3 4]
垂直連線
垂直級聯就像水平連線,但在垂直方向。垂直連線的功能是 vcat
。
julia> vcat([1 2; 3 4], [5 6; 7 8; 9 10], [11 12])
6×2 Array{Int64,2}:
1 2
3 4
5 6
7 8
9 10
11 12
或者,方括號表示法可以使用分號 ;
作為分隔符:
julia> [[1 2; 3 4]; [5 6; 7 8; 9 10]; [11 12]]
6×2 Array{Int64,2}:
1 2
3 4
5 6
7 8
9 10
11 12
向量也可以垂直連線; 結果是一個向量:
julia> A = [1, 2, 3]
3-element Array{Int64,1}:
1
2
3
julia> B = [4, 5]
2-element Array{Int64,1}:
4
5
julia> [A; B]
5-element Array{Int64,1}:
1
2
3
4
5
可以組合水平和垂直連線:
julia> A = [1 2
3 4]
2×2 Array{Int64,2}:
1 2
3 4
julia> B = [5 6 7]
1×3 Array{Int64,2}:
5 6 7
julia> C = [8, 9]
2-element Array{Int64,1}:
8
9
julia> [A C; B]
3×3 Array{Int64,2}:
1 2 8
3 4 9
5 6 7