Table: Difference between revisions
No edit summary |
m (→Properties) |
||
Line 40: | Line 40: | ||
Table preserves the array's [[Tally]] (the number of major cells). | Table preserves the array's [[Tally]] (the number of major cells). | ||
Table is equivalent to [[reshape|reshaping]] with the shape where all trailing axis lengths have been replaced by their [[product], | Table is equivalent to [[reshape|reshaping]] with the shape where all trailing axis lengths have been replaced by their [[product]] or, alternatively, the tally concatenated to the [[bound]] divided by the tally: | ||
<source lang=apl> | <source lang=apl> | ||
⍪2 3 4 2⍴⎕A | ⍪2 3 4 2⍴⎕A | ||
Line 59: | Line 59: | ||
YZABCDEFGHIJKLMNOPQRSTUV | YZABCDEFGHIJKLMNOPQRSTUV | ||
</source> | </source> | ||
In languages where [function axis] is available, Table is equivalent to <source lang=apl inline>,[1↓⍳≢⍴Y]</source>: | In languages where [[function axis]] is available, Table is equivalent to <source lang=apl inline>,[1↓⍳≢⍴Y]</source>: | ||
<source lang=apl> | <source lang=apl> | ||
{,[1↓⍳≢⍴⍵]⍵}2 3 4 2⍴⎕A | {,[1↓⍳≢⍴⍵]⍵}2 3 4 2⍴⎕A |
Revision as of 08:44, 9 July 2020
⍪
|
Table (⍪
), or Ravel Items, is a monadic primitive function which returns a matrix formed by applying Ravel to each major cell of the given array. Table shares its glyph ⍪
with the dyadic function Catenate First.
Examples
For arrays of rank 1 or higher, the result is identical to applying Ravel to major cells:
{⍵(⍴⍵)}⍪5⍴⎕A ┌─┬───┐ │A│5 1│ │B│ │ │C│ │ │D│ │ │E│ │ └─┴───┘ {⍵(⍴⍵)}⍪3 4⍴⎕A ┌────┬───┐ │ABCD│3 4│ │EFGH│ │ │IJKL│ │ └────┴───┘ {⍵(⍴⍵)}⍪2 3 4⍴⎕A ┌────────────┬────┐ │ABCDEFGHIJKL│2 12│ │MNOPQRSTUVWX│ │ └────────────┴────┘
A scalar argument is converted to a 1-by-1 matrix:
{⍵(⍴⍵)}⍪123 ┌───┬───┐ │123│1 1│ └───┴───┘
Properties
Table preserves the array's Tally (the number of major cells).
Table is equivalent to reshaping with the shape where all trailing axis lengths have been replaced by their product or, alternatively, the tally concatenated to the bound divided by the tally:
⍪2 3 4 2⍴⎕A ABCDEFGHIJKLMNOPQRSTUVWX YZABCDEFGHIJKLMNOPQRSTUV {⍵⍴⍨(≢⍵),(×/⍴⍵)÷≢⍵}2 3 4 2⍴⎕A ABCDEFGHIJKLMNOPQRSTUVWX YZABCDEFGHIJKLMNOPQRSTUV {⍵⍴⍨(1↑⍴⍵),(×/1↓⍴⍵)}2 3 4 2⍴⎕A ABCDEFGHIJKLMNOPQRSTUVWX YZABCDEFGHIJKLMNOPQRSTUV
In languages where the Rank operator is available, Table is equivalent to ,⍤¯1
:
(,⍤¯1)2 3 4 2⍴⎕A ABCDEFGHIJKLMNOPQRSTUVWX YZABCDEFGHIJKLMNOPQRSTUV
In languages where function axis is available, Table is equivalent to ,[1↓⍳≢⍴Y]
:
{,[1↓⍳≢⍴⍵]⍵}2 3 4 2⍴⎕A ABCDEFGHIJKLMNOPQRSTUVWX YZABCDEFGHIJKLMNOPQRSTUV
External links
Lessons
Documentation