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, Vol. 25, pp. 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, Vol. 38, No. 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) ¶old_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.
Empty matrices may also be used in assignment statements as a convenient way to delete rows or columns of matrices. See Assignment Expressions.
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.