ArrayQ

ArrayQ[expr]

gives True if expr is a full array or a SparseArray object, and gives False otherwise.

ArrayQ[expr,patt]

requires expr to be a full array with a depth that matches the pattern patt.

ArrayQ[expr,patt,test]

requires also that test yield True when applied to each of the array elements in expr.

Details

  • In a full array all parts at a particular level must be lists of the same length.
  • ArrayQ[expr,1|2] tests whether expr is either a vector or a matrix.
  • ArrayQ[expr,_,NumberQ] tests whether expr is a numerical array at all levels.

Examples

open allclose all

Basic Examples  (2)

A vector of numbers is a full array:

A vector in which one element is itself a list is not a full array:

A ragged collection of nested lists is not a full array:

Scope  (5)

Test for a vector:

Test for a matrix:

Test for a vector or a matrix:

Test for a numeric vector:

Test for an array of any depth with numeric entries:

Applications  (1)

Define a function that only evaluates with arrays:

This constructs the tensor product interpolating polynomial assuming integer coordinates:

The polynomial interpolates the data:

Properties & Relations  (3)

VectorQ is a special case of ArrayQ:

MatrixQ is a special case of ArrayQ:

ArrayQ effectively uses AllowedHeads"ListLike":

Introduced in 2003
 (5.0)