Ho un array:Come posso trasporre matrici di rubini di dimensioni diverse?
arr=[[1,2,3],[4,5],[6]],
Ho il seguente codice:
arr.transpose
ma non funziona, come risolverlo?
sto ottenendo
[[1,2,3],[4,5],[6]].transpose
IndexError: element size differs (2 should be 3)
from (irb):13:in `transpose'
from (irb):13
from /home/durrant
la mia soluzione:
arr.reduce(&:zip).map(&:flatten)
uscita:
[[1, 4, 6], [2, 5, nil], [3, nil, nil]]
Qual è il risultato previsto per l'array specificato? – falsetru
Guardate questo http://stackoverflow.com/questions/21455310/why-does-ruby-have-zip-and-transpose-when-the-the-same-thing per capire perché #transpose non ha funzionato. –
La risposta, anche se non posso pubblicare come tale è che il numero di elementi deve essere lo stesso per questa operazione. –