Transpose: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 1: | Line 1: | ||
{{primitive}} |
{{primitive}} |
||
[[File:Matrix_transpose.gif|256px|right]] |
|||
'''Transpose''', a.k.a. '''flip''', swaps the two leading axes of a 2+ dimensional rectangular array. Dialects differ in their treatment of atoms, lists, and ragged arrays. |
'''Transpose''', a.k.a. '''flip''', swaps the two leading axes of a 2+ dimensional rectangular array. Dialects differ in their treatment of atoms, lists, and ragged arrays. |
||
+("ab";"cd";"ef") |
+("ab";"cd";"ef") |
Revision as of 17:06, 6 July 2021
Transpose
{{{1}}}
Transpose, a.k.a. flip, swaps the two leading axes of a 2+ dimensional rectangular array. Dialects differ in their treatment of atoms, lists, and ragged arrays.
+("ab";"cd";"ef") ("ace" "bdf")
Atoms in otherwise rectangular arrays are extended to the full length of the corresponding dimension:
+(`a`b`c;`d) (`a`d `b`d `c`d)
Atoms and lists
Transposing a list in oK or ngn/k enlists it. Transposing an atom enlists twice[1]:
+,0 ,,0 +0 ,,0
K3, K4, and Kona[2] return the argument as-is.
K9 throws a rank error.
Ragged arrays
oK and ngn/k reshape shorter rows to the length of the longest row:
+(`a`b`c;`d`e) (`a`d `b`e `c`d)
K9 pads shorter rows with nulls:
+(`a`b`c;`d`e) (`a`d `b`e `c`)