Sök…


Introduktion

Multidimensionella matriser i Ruby är bara matriser vars element är andra matriser.

Den enda fången är att eftersom Ruby-matriser kan innehålla delar av blandade typer måste du vara säker på att matrisen som du manipulerar effektivt består av andra matriser och inte till exempel matriser och strängar.

Initierar en 2D-grupp

Låt oss först sammanfatta hur man initierar en 1D rubinuppsättning av heltal:

my_array = [1, 1, 2, 3, 5, 8, 13]

Att vara en 2D-grupp helt enkelt en matris med matriser, du kan initialisera det så här:

my_array = [
  [1, 1, 2, 3, 5, 8, 13],
  [1, 4, 9, 16, 25, 36, 49, 64, 81],
  [2, 3, 5, 7, 11, 13, 17]
]

Initiera en 3D-grupp

Du kan gå en nivå längre ner och lägga till ett tredje lager av matriser. Reglerna ändras inte:

my_array = [
  [
    [1, 1, 2, 3, 5, 8, 13],
    [1, 4, 9, 16, 25, 36, 49, 64, 81],
    [2, 3, 5, 7, 11, 13, 17]
  ],
  [
    ['a', 'b', 'c', 'd', 'e'],
    ['z', 'y', 'x', 'w', 'v']
  ],
  [
    []
  ]
]

Få åtkomst till en kapslad matris

Åtkomst till det tredje elementet i den första delgruppen:

my_array[1][2]

Array utplattning

Med tanke på en flerdimensionell matris:

my_array = [[1, 2], ['a', 'b']]

operationen med plattning är att sönderdela alla matrisbarn till rotfältet:

my_array.flatten

# [1, 2, 'a', 'b']


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow