web-dev-qa-db-fra.com

Concaténation de tableaux dans Julia

Si les deux tableaux Int le sont, a = [1;2;3] et b = [4;5;6], comment concaténer les deux tableaux dans les deux dimensions? Les résultats attendus sont,

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

Utilisez les fonctions vcat et 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

Les crochets peuvent être utilisés pour la concaténation:

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

Vous pouvez utiliser la fonction cat pour concaténer n'importe quel nombre de tableaux le long de n'importe quelle dimension. La première entrée est la dimension sur laquelle effectuer la concaténation; les entrées restantes sont toutes les matrices que vous souhaitez concaténer ensemble

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

lorsqu'il rencontre Array {Array, 1}, la grammaire est un peu différente, comme ceci:

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

réf:

... combine de nombreux arguments en un seul argument dans les définitions de fonctions Dans le contexte des définitions de fonctions, l'opérateur ... est utilisé pour combiner de nombreux arguments différents en un seul argument. Cette utilisation de ... pour combiner de nombreux arguments différents en un seul argument est appelée slurping

1
Jason D