octave: Empty Matrices
4.1.1 Empty Matrices
--------------------
A matrix may have one or both dimensions zero, and operations on empty
matrices are handled as described by Carl de Boor in ‘An Empty
Exercise’, SIGNUM, Volume 25, pages 2-6, 1990 and C. N. Nett and W. M.
Haddad, in ‘A System-Theoretic Appropriate Realization of the Empty
Matrix Concept’, IEEE Transactions on Automatic Control, Volume 38,
Number 5, May 1993. Briefly, given a scalar S, an M by N matrix
‘M(mxn)’, and an M by N empty matrix ‘[](mxn)’ (with either one or both
dimensions equal to zero), the following are true:
s * [](mxn) = [](mxn) * s = [](mxn)
[](mxn) + [](mxn) = [](mxn)
[](0xm) * M(mxn) = [](0xn)
M(mxn) * [](nx0) = [](mx0)
[](mx0) * [](0xn) = 0(mxn)
By default, dimensions of the empty matrix are printed along with the
empty matrix symbol, ‘[]’. The built-in variable
‘print_empty_dimensions’ controls this behavior.
-- : VAL = print_empty_dimensions ()
-- : OLD_VAL = print_empty_dimensions (NEW_VAL)
-- : print_empty_dimensions (NEW_VAL, "local")
Query or set the internal variable that controls whether the
dimensions of empty matrices are printed along with the empty
matrix symbol, ‘[]’.
For example, the expression
zeros (3, 0)
will print
ans = [](3x0)
When called from inside a function with the "local" option, the
variable is changed locally for the function and any subroutines it
calls. The original variable value is restored when exiting the
function.
See also: format XREFformat.
Empty matrices may also be used in assignment statements as a
convenient way to delete rows or columns of matrices. Assignment
Expressions Assignment Ops.
When Octave parses a matrix expression, it examines the elements of
the list to determine whether they are all constants. If they are, it
replaces the list with a single matrix constant.