Producto de iteradores en una matriz de matrices


8

¿Cómo puedo crear un iterador en el producto de matrices, a partir de una matriz de matrices? El tamaño de la matriz no está predeterminado.

Básicamente lo siguiente funciona como deseo:

for i in Base.Iterators.product([1,2,3],[4,5])
   print(i)
end
(1, 4)(2, 4)(3, 4)(1, 5)(2, 5)(3, 5)

Pero me gustaría que funcionara para una variedad de matrices, pero obtengo un resultado diferente:

x = [[1,2,3],[4,5]]
for i in Base.Iterators.product(x)
   print(i)
end
([1, 2, 3],)([4, 5],)

Respuestas:


5

Puede usar el operador splat para interpolar la matriz de matrices en la llamada a la función:

julia> x = [[1,2,3],[4,5]];

julia> for i in Base.Iterators.product(x...)
          print(i)
       end
(1, 4)(2, 4)(3, 4)(1, 5)(2, 5)(3, 5)

1
Sí, eso es como pitones f(*x)muy útil ...
Gwang-Jin Kim
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.