Module pl.array2d

Operations on two-dimensional arrays.

See The Guide

Dependencies: pl.utils , pl.tablex

Functions

size (t) return the row and column size.
column (a, key) extract a column from the 2D array.
map (f, a, arg) map a function over a 2D array
reduce_rows (f, a) reduce the rows using a function.
reduce_cols (f, a) reduce the columns using a function.
reduce2 (opc, opr, a) reduce a 2D array into a scalar, using two operations.
map2 (f, ad, bd, a, b, arg) map a function over two arrays.
product (f, t1, t2) cartesian product of two 1d arrays.
flatten (t) flatten a 2D array.
reshape (t, nrows, co) reshape a 2D array.
swap_rows (t, i1, i2) swap two rows of an array.
swap_cols (t, j1, j2) swap two columns of an array.
extract_rows (t, ridx) extract the specified rows.
extract_cols (t, cidx) extract the specified columns.
remove_row (t, i) remove a row from an array.
remove_col (t, j) remove a column from an array.
parse_range (s) parse a spreadsheet range.
range (t, rstr) get a slice of a 2D array using spreadsheet range notation.
slice (t, i1, j1, i2, j2) get a slice of a 2D array.
set (t, value, i1, j1, i2, j2) set a specified range of an array to a value.
write (t, f, fmt, i1, j1, i2, j2) write a 2D array to a file.
forall (t, row_op, end_row_op, i1, j1, i2, j2) perform an operation for all values in a 2D array.
move (dest, di, dj, src, i1, j1, i2, j2) move a block from the destination to the source.
iter (a, indices, i1, j1, i2, j2) iterate over all elements in a 2D array, with optional indices.
columns (a) iterate over all columns.
new (rows, cols, val) new array of specified dimensions


Functions

size (t)
return the row and column size.

Parameters:

  • t: a 2d array

Returns:

  1. number of rows
  2. number of cols
column (a, key)
extract a column from the 2D array.

Parameters:

  • a: 2d array
  • key: an index or key

Returns:

    1d array
map (f, a, arg)
map a function over a 2D array

Parameters:

  • f: a function of at least one argument
  • a: 2d array
  • arg: an optional extra argument to be passed to the function.

Returns:

    2d array
reduce_rows (f, a)
reduce the rows using a function.

Parameters:

  • f: a binary function
  • a: 2d array

Returns:

    1d array

see also:

reduce_cols (f, a)
reduce the columns using a function.

Parameters:

  • f: a binary function
  • a: 2d array

Returns:

    1d array

see also:

reduce2 (opc, opr, a)
reduce a 2D array into a scalar, using two operations.

Parameters:

  • opc: operation to reduce the final result
  • opr: operation to reduce the rows
  • a: 2D array
map2 (f, ad, bd, a, b, arg)
map a function over two arrays. They can be both or either 2D arrays

Parameters:

  • f: function of at least two arguments
  • ad: order of first array
  • bd: order of second array
  • a: 1d or 2d array
  • b: 1d or 2d array
  • arg: optional extra argument to pass to function

Returns:

    2D array, unless both arrays are 1D
product (f, t1, t2)
cartesian product of two 1d arrays.

Parameters:

  • f: a function of 2 arguments
  • t1: a 1d table
  • t2: a 1d table

Usage:

    product('..',{1,2},{'a','b'}) == {{'1a','2a'},{'1b','2b'}}

Returns:

    2d table
flatten (t)
flatten a 2D array. (this goes over columns first.)

Parameters:

  • t: 2d table

Usage:

    flatten {{1,2},{3,4},{5,6}} == {1,2,3,4,5,6}

Returns:

    a 1d table
reshape (t, nrows, co)
reshape a 2D array.

Parameters:

  • t: 2d array
  • nrows: new number of rows
  • co: column-order (Fortran-style) (default false)

Returns:

    a new 2d array
swap_rows (t, i1, i2)
swap two rows of an array.

Parameters:

  • t: a 2d array
  • i1: a row index
  • i2: a row index
swap_cols (t, j1, j2)
swap two columns of an array.

Parameters:

  • t: a 2d array
  • j1: a column index
  • j2: a column index
extract_rows (t, ridx)
extract the specified rows.

Parameters:

  • t: 2d array
  • ridx: a table of row indices
extract_cols (t, cidx)
extract the specified columns.

Parameters:

  • t: 2d array
  • cidx: a table of column indices
remove_row (t, i)
remove a row from an array.

Parameters:

  • t: a 2d array
  • i: a row index
remove_col (t, j)
remove a column from an array.

Parameters:

  • t: a 2d array
  • j: a column index
parse_range (s)
parse a spreadsheet range. The range can be specified either as ‘A1:B2’ or ‘R1C1:R2C2’; a special case is a single element (e.g ‘A1’ or ‘R1C1’)

Parameters:

  • s: a range.

Returns:

  1. start col
  2. start row
  3. end col
  4. end row
range (t, rstr)
get a slice of a 2D array using spreadsheet range notation. @see parse_range

Parameters:

  • t: a 2D array
  • rstr: range expression

Returns:

    a slice

see also:

slice (t, i1, j1, i2, j2)
get a slice of a 2D array. Note that if the specified range has a 1D result, the rank of the result will be 1.

Parameters:

  • t: a 2D array
  • i1: start row (default 1)
  • j1: start col (default 1)
  • i2: end row (default N)
  • j2: end col (default M)

Returns:

    an array, 2D in general but 1D in special cases.
set (t, value, i1, j1, i2, j2)
set a specified range of an array to a value.

Parameters:

  • t: a 2D array
  • value: the value (may be a function)
  • i1: start row (default 1)
  • j1: start col (default 1)
  • i2: end row (default N)
  • j2: end col (default M)

see also:

write (t, f, fmt, i1, j1, i2, j2)
write a 2D array to a file.

Parameters:

  • t: a 2D array
  • f: a file object (default stdout)
  • fmt: a format string (default is just to use tostring)
  • i1: start row (default 1)
  • j1: start col (default 1)
  • i2: end row (default N)
  • j2: end col (default M)
forall (t, row_op, end_row_op, i1, j1, i2, j2)
perform an operation for all values in a 2D array.

Parameters:

  • t: 2D array
  • row_op: function to call on each value
  • end_row_op: function to call at end of each row
  • i1: start row (default 1)
  • j1: start col (default 1)
  • i2: end row (default N)
  • j2: end col (default M)
move (dest, di, dj, src, i1, j1, i2, j2)
move a block from the destination to the source.

Parameters:

  • dest: a 2D array
  • di: start row in dest
  • dj: start col in dest
  • src: a 2D array
  • i1: start row (default 1)
  • j1: start col (default 1)
  • i2: end row (default N)
  • j2: end col (default M)
iter (a, indices, i1, j1, i2, j2)
iterate over all elements in a 2D array, with optional indices.

Parameters:

  • a: 2D array
  • indices: with indices (default false)
  • i1: start row (default 1)
  • j1: start col (default 1)
  • i2: end row (default N)
  • j2: end col (default M)

Returns:

    either value or i,j,value depending on indices
columns (a)
iterate over all columns.

Parameters:

  • a: a 2D array

Returns:

    each column in turn
new (rows, cols, val)
new array of specified dimensions

Parameters:

  • rows: number of rows
  • cols: number of cols
  • val: initial value; if it’s a function then use val(i,j)

Returns:

    new 2d array
generated by LDoc 1.2