I've been fiddling around recently and found that 1 1⍉M should give the ¯1-slope diagonal of the matrix M (if 2 = ⍴⍴M). I've only tested this on rank 2 matrices, as I don't have enough experience to tell what it should do on higher rank arrays, but I've found that dyadic transpose works as expected only on matrices whose row index is greater or equal to their column index. More clearly:
≤/⍴M must give 1. For example, this works: M ← 2 3 ⍴ ⍳6 ◊ N ← 3 3 ⍴ ⍳9 (⊂1 1) ⍉¯ M N But this gives an "Assertion failed" error: N ← ⍉N or equivalently N ← 3 2 ⍴ ⍳6 1 1 ⍉ N With large enough matrices (5 by 3 is enough), GNU APL signals a segmentation fault and says Goodbye. I will update when I've figured out exactly what is supposed to happen to rank 3 or 4 arrays. Good luck! Louis
