如果兩個Int
陣列是a = [1;2;3]
和b = [4;5;6]
,我們如何連接兩個維度中的兩個數組?預期輸出,在Julia中連接陣列
julia> out1
6-element Array{Int64,1}:
1
2
3
4
5
6
julia> out2
3x2 Array{Int64,2}:
1 4
2 5
3 6
如果兩個Int
陣列是a = [1;2;3]
和b = [4;5;6]
,我們如何連接兩個維度中的兩個數組?預期輸出,在Julia中連接陣列
julia> out1
6-element Array{Int64,1}:
1
2
3
4
5
6
julia> out2
3x2 Array{Int64,2}:
1 4
2 5
3 6
使用vcat
和hcat
功能:
julia> a, b = [1;2;3], [4;5;6]
([1,2,3],[4,5,6])
help?> vcat
Base.vcat(A...)
Concatenate along dimension 1
julia> vcat(a, b)
6-element Array{Int64,1}:
1
2
3
4
5
6
help?> hcat
Base.hcat(A...)
Concatenate along dimension 2
julia> hcat(a, b)
3x2 Array{Int64,2}:
1 4
2 5
3 6
方括號可以用於級聯:
julia> a, b = [1;2;3], [4;5;6]
([1,2,3],[4,5,6])
julia> [a; b]
6-element Array{Int64,1}:
1
2
3
4
5
6
julia> [a b]
3×2 Array{Int64,2}:
1 4
2 5
3 6
這是'vcat'和'hcat'的語法糖:'[e.head for e in [:([a; b]),:([ab])]]#符號[:vcat,:hcat]' – SalchiPapa
通常我認爲'vcat'和'hcat'應該是首選的,因爲這個解決方案對空白敏感。例如:'[a - b]'將'vcat'同時'[a -b]'將'hcat'。這可能是一個令人討厭的錯誤。 –
*不喜歡語法糖的版本。畢竟,糖*爲*是什麼?你是說這個語法可能會被刪除嗎? – DNF
可以使用cat
功能連接任意維數的任意數量的數組。第一個輸入是執行拼接的維度;剩餘的輸入是所有陣列的要串連在一起
a = [1;2;3]
b = [4;5;6]
## Concatenate 2 arrays along the first dimension
cat(1,a,b)
6-element Array{Int64,1}:
1
2
3
4
5
6
## Concatenate 2 arrays along the second dimension
cat(2,a,b)
3x2 Array{Int64,2}:
1 4
2 5
3 6
## Concatenate 2 arrays along the third dimension
cat(3,a,b)
3x1x2 Array{Int64,3}:
[:, :, 1] =
1
2
3
[:, :, 2] =
4
5
6
的[2個串聯朱陣列而不修改他們]可能的複製(http://stackoverflow.com/questions/37206550/concatenate-2-julia- – niczky12