web-dev-qa-db-ja.com

Juliaでの配列の連結

2つのInt配列があれば、a = [1;2;3]およびb = [4;5;6]、2つの配列を両方の次元でどのように連結しますか?期待される出力は、

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
17
Abhijith

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
21
SalchiPapa

連結には角括弧を使用できます。

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
15
user6847814

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
8
Landon

array {Array、1}に遭遇すると、グラマーは次のように少し異なります。

Julia> a=[[1,2],[3,4]]
2-element Array{Array{Int64,1},1}:
 [1, 2]
 [3, 4]

Julia> vcat(a)
2-element Array{Array{Int64,1},1}:
 [1, 2]
 [3, 4]

Julia> hcat(a)
2×1 Array{Array{Int64,1},2}:
 [1, 2]
 [3, 4]

Julia> vcat(a...)
4-element Array{Int64,1}:
 1
 2
 3
 4

Julia> hcat(a...)
2×2 Array{Int64,2}:
 1  3
 2  4

ref:

...関数定義で多くの引数を1つの引数に結合する関数定義のコンテキストでは、...演算子を使用して、多くの異なる引数を1つの引数に結合します。多くの異なる引数を単一の引数に結合するための...のこの使用は、slurpingと呼ばれます

1
Jason D