Ruby Language
Arreglos Multidimensionales
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']