Skip to main content

array-dimension

array-dimension Function

Syntax:

array-dimension array axis-number → dimension

Arguments and Values:

array—an array.

axis-number—an integer greater than or equal to zero and less than the rank of the array. dimension—a non-negative integer .

Description:

array-dimension returns the axis-number dimension1 of array. (Any fill pointer is ignored.)

Examples:

(array-dimension (make-array 4) 0)4 
(array-dimension (make-array(2 3)) 1)3

Affected By:

None.

See Also:

array-dimensions, length

Notes:

(array-dimension array n) (nth n (array-dimensions array))

Expanded Reference: array-dimension

Basic Usage

array-dimension returns the size of a specific axis (dimension) of an array. The axis-number is zero-indexed.

;; Dimension of a 1D array (only axis 0)
(array-dimension (make-array 7) 0)
=> 7

;; Dimensions of a 2D array
(let ((m (make-array '(3 5))))
(list (array-dimension m 0) ; rows
(array-dimension m 1))) ; columns
=> (3 5)

Multi-Dimensional Arrays

For higher-rank arrays, each axis is queried independently.

(let ((a (make-array '(2 3 4))))
(list (array-dimension a 0)
(array-dimension a 1)
(array-dimension a 2)))
=> (2 3 4)

Fill Pointer Is Ignored

array-dimension returns the actual allocated size, not the fill pointer value.

(let ((v (make-array 10 :fill-pointer 3)))
(list (array-dimension v 0) ; actual size
(length v))) ; fill pointer value
=> (10 3)

Relationship to array-dimensions

array-dimension on axis n is equivalent to the nth element of the list returned by array-dimensions.

(let ((a (make-array '(4 6))))
(equal (array-dimension a 1)
(nth 1 (array-dimensions a))))
=> T