RosettaCodeData/Task/Matrix-transposition/Icon/matrix-transposition.icon

29 lines
630 B
Plaintext

procedure transpose_matrix (matrix)
result := []
# for each column
every (i := 1 to *matrix[1]) do {
col := []
# extract the number in each row for that column
every (row := !matrix) do put (col, row[i])
# and push that column as a row in the result matrix
put (result, col)
}
return result
end
procedure print_matrix (matrix)
every (row := !matrix) do {
every writes (!row || " ")
write ()
}
end
procedure main ()
matrix := [[1,2,3],[4,5,6]]
write ("Start:")
print_matrix (matrix)
transposed := transpose_matrix (matrix)
write ("Transposed:")
print_matrix (transposed)
end