6.10 Slicing and blocking functions
Stan provides several functions for generating slices or blocks or diagonal entries for matrices.
6.10.1 Columns and rows
vector
col
(matrix x, int n)
The n-th column of matrix x
Available since 2.0
row_vector
row
(matrix x, int m)
The m-th row of matrix x
Available since 2.0
The row
function is special in that it may be used as an lvalue in
an assignment statement (i.e., something to which a value may be
assigned). The row function is also special in that the indexing
notation x[m]
is just an alternative way of writing row(x,m)
. The
col
function may not, be used as an lvalue, nor is there an
indexing based shorthand for it.
6.10.2 Block operations
6.10.2.1 Matrix slicing operations
Block operations may be used to extract a sub-block of a matrix.
matrix
block
(matrix x, int i, int j, int n_rows, int n_cols)
Return the submatrix of x that starts at row i and column j and
extends n_rows rows and n_cols columns.
Available since 2.0
The sub-row and sub-column operations may be used to extract a slice of row or column from a matrix
vector
sub_col
(matrix x, int i, int j, int n_rows)
Return the sub-column of x that starts at row i and column j and
extends n_rows rows and 1 column.
Available since 2.0
row_vector
sub_row
(matrix x, int i, int j, int n_cols)
Return the sub-row of x that starts at row i and column j and extends
1 row and n_cols columns.
Available since 2.0
6.10.2.2 Vector and array slicing operations
The head operation extracts the first \(n\) elements of a vector and the tail operation the last. The segment operation extracts an arbitrary subvector.
vector
head
(vector v, int n)
Return the vector consisting of the first n elements of v.
Available since 2.0
row_vector
head
(row_vector rv, int n)
Return the row vector consisting of the first n elements of rv.
Available since 2.0
array[] T
head
(array[] T sv, int n)
Return the array consisting of the first n elements of sv; applies to
up to three-dimensional arrays containing any type of elements T
.
Available since 2.0
vector
tail
(vector v, int n)
Return the vector consisting of the last n elements of v.
Available since 2.0
row_vector
tail
(row_vector rv, int n)
Return the row vector consisting of the last n elements of rv.
Available since 2.0
array[] T
tail
(array[] T sv, int n)
Return the array consisting of the last n elements of sv; applies to
up to three-dimensional arrays containing any type of elements T
.
Available since 2.0
vector
segment
(vector v, int i, int n)
Return the vector consisting of the n elements of v starting at i;
i.e., elements i through through i + n - 1.
Available since 2.0
row_vector
segment
(row_vector rv, int i, int n)
Return the row vector consisting of the n elements of rv starting at
i; i.e., elements i through through i + n - 1.
Available since 2.10
array[] T
segment
(array[] T sv, int i, int n)
Return the array consisting of the n elements of sv starting at i;
i.e., elements i through through i + n - 1. Applies to up to
three-dimensional arrays containing any type of elements T
.
Available since 2.0