Subarray

From APL Wiki
Revision as of 09:50, 15 November 2019 by Miraheze>Marshall (Created page with ":''The term sub-array may also be used to refer to an array cell.'' A '''subarray''' (or '''sub-array''') of an array is another array which can be formed by selecting a...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The term sub-array may also be used to refer to an array cell.

A subarray (or sub-array) of an array is another array which can be formed by selecting a contiguous section along each axis. The subarrays of an array are all those that result from indexing that array by a full set of index arrays each of which is either a scalar or a vector of sequential indices. The term subarray is used loosely in APL and rarely defined directly. Depending on context, scalar indices may be allowed only for leading axes or not at all. If scalar indices are not allowed than a subarray shares every axis with the array that contains it and has equal rank to it; we might call such subarrays equal-rank subarrays. Otherwise a subarray has rank less than or equal to its containing array.

A vector subarray of a vector is a subvector. In languages outside of the APL family which have only 1-dimensional arrays, "subarray" may have this meaning: for example, the maximum subarray problem is usually taken to apply to 1-dimensional arrays only. The term "slice" may also be used to refer to a subvector outside of APL.

The Find () function searches for occurrences of the left argument as a subarray of the right argument. For Find, a subarray may have leading axes dropped but not others. We might also say that Find searches for the left argument after extending its shape with leading 1s, or that it searches for the left argument as a subarray of any equal-rank cell of the right argument.

      ⊢A ← 5 4⍴⎕A
ABCD
EFGH
IJKL
MNOP
QRST
      (2 3⍴'FGHJKL') ⍷ A
0 0 0 0
0 1 0 0
0 0 0 0
0 0 0 0
0 0 0 0
      'MN' ⍷ A            ⍝ Found in a row
0 0 0 0
0 0 0 0
0 0 0 0
1 0 0 0
0 0 0 0
      'CGKO' ⍷ A          ⍝ Not found in a column
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
      (⍪'CGKO') ⍷ A       ⍝ Found after adding last axis
0 0 1 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

Special types of equal-rank subarrays include:

General subarrays include:

Template:APL programming language