RosettaCodeData/Task/Matrix-transposition/Go/matrix-transposition-3.go

36 lines
534 B
Go
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
package main
import "fmt"
2015-11-18 06:14:39 +00:00
type row []float64
type matrix []row
2013-04-10 21:29:02 -07:00
func main() {
2015-11-18 06:14:39 +00:00
m := matrix{
2013-04-10 21:29:02 -07:00
{1, 2, 3},
{4, 5, 6},
2015-11-18 06:14:39 +00:00
}
printMatrix(m)
t := transpose(m)
printMatrix(t)
2013-04-10 21:29:02 -07:00
}
2015-11-18 06:14:39 +00:00
func printMatrix(m matrix) {
for _, s := range m {
fmt.Println(s)
2013-04-10 21:29:02 -07:00
}
}
2015-11-18 06:14:39 +00:00
func transpose(m matrix) matrix {
r := make(matrix, len(m[0]))
for x, _ := range r {
r[x] = make(row, len(m))
}
for y, s := range m {
for x, e := range s {
r[x][y] = e
2013-04-10 21:29:02 -07:00
}
}
2015-11-18 06:14:39 +00:00
return r
2013-04-10 21:29:02 -07:00
}