Buscar..


Introducción

Las matrices multidimensionales en Ruby son matrices cuyos elementos son otras matrices.

El único problema es que dado que los arreglos de Ruby pueden contener elementos de tipos mixtos, debe estar seguro de que el arreglo que está manipulando está efectivamente compuesto de otros arreglos y no, por ejemplo, arreglos y cadenas.

Inicializando una matriz 2D

Primero recapitulemos cómo inicializar una matriz de números enteros de rubíes 1D:

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

Al ser una matriz 2D simplemente una matriz de matrices, puede inicializarla de la siguiente manera:

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]
]

Inicializando una matriz 3D

Puedes ir un nivel más abajo y agregar una tercera capa de arreglos. Las reglas no cambian:

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']
  ],
  [
    []
  ]
]

Accediendo a una matriz anidada

Accediendo al 3er elemento del primer subarray:

my_array[1][2]

Aplanamiento de matrices

Dada una matriz multidimensional:

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

la operación de aplanamiento es descomponer todos los elementos secundarios de la matriz en la matriz raíz:

my_array.flatten

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow