Partitioned Enclose (⎕ML<3) R←X⊂[K]Y
Y
may be any array. X
must be a simple integer scalar or vector. If X
is a scalar it is extended to (≢Y)⍴X
.
The axis specification is optional. If present, it must be a simple integer scalar or one-element vector. The value of K
must be an axis of Y
. If absent, the last axis of Y
is implied.
R
is a vector of items selected from Y
by inserting 0 or more dividers, specified by X
, between its major cells.
Each element of X
specifies the number of dividers to insert before the corresponding major cell of Y
. The maximum length of X
is 1+≢Y
, when the last element of X
specifies the number of trailing dividers. Note that major cells of Y
that precede the first divider (identified by the first non-zero element of X
) are excluded from the result.
The length of R
is +/X
(after possible extension).
Examples
0 0 1 0 0 1 0⊂'abcdefg'
┌───┬──┐
│cde│fg│
└───┴──┘
2 0 1 3 0 2 0 1⊂'abcdefg'
┌┬──┬─┬┬┬──┬┬──┬┐
││ab│c│││de││fg││
└┴──┴─┴┴┴──┴┴──┴┘
0 2 0 1⊂'abcdefg'
┌┬──┬────┐
││bc│defg│
└┴──┴────┘
The above examples may be explained pictorially by the diagram below.
Further Examples
1 0 1⊂[1]3 4⍴⍳12
┌───────┬──────────┐
│1 2 3 4│9 10 11 12│
│5 6 7 8│ │
└───────┴──────────┘
1 0 0 1⊂[2]3 4⍴⍳12
┌───────┬──┐
│1 2 3│ 4│
│5 6 7│ 8│
│9 10 11│12│
└───────┴──┘