Produto Iteradores em matriz de matrizes


8

Como posso criar um iterador no produto de matrizes, a partir de uma matriz de matrizes? O tamanho da matriz não predeterminado.

Basicamente, o seguinte funciona como eu desejo:

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)

Mas gostaria que funcionasse para uma matriz de matrizes, mas estou obtendo resultado diferente:

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

Respostas:


5

Você pode usar o operador splat para interpolar a matriz de matrizes na chamada de função:

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
Sim, isso é como pitões f(*x)muito úteis ...
Gwang-Jin Kim
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.