Matrix transposition: Difference between revisions
Content added Content deleted
m (Source and output ormatting.) |
(Updated to work with Nim 1.4: suppressed ".. <".) |
||
Line 2,595: | Line 2,595: | ||
<lang nim>proc transpose[T](s: seq[seq[T]]): seq[seq[T]] = |
<lang nim>proc transpose[T](s: seq[seq[T]]): seq[seq[T]] = |
||
result = newSeq[seq[T]](s[0].len) |
result = newSeq[seq[T]](s[0].len) |
||
for i in 0 .. |
for i in 0 .. s[0].high: |
||
result[i] = newSeq[T](s.len) |
result[i] = newSeq[T](s.len) |
||
for j in 0 .. |
for j in 0 .. s.high: |
||
result[i][j] = s[j][i] |
result[i][j] = s[j][i] |
||
let a = @[@[ 0, 1, 2, 3, 4], |
let a = @[@[ 0, 1, 2, 3, 4], |
||
@[ 5, 6, 7, 8, 9], |
@[ 5, 6, 7, 8, 9], |
||
@[ 1, 0, 0, 0,42]] |
@[ 1, 0, 0, 0, 42]] |
||
echo transpose(a)</lang> |
echo transpose(a)</lang> |
||
{{out}} |
{{out}} |