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.
print_empty_dimensions | Built-in Variable |
If the value of print_empty_dimensions is nonzero the
dimensions of empty matrices are printed along with the empty matrix
symbol [] . For example, the expression
zeros (3 0) will print ans = [](3x0) |
Empty matrices may also be used in assignment statements as a convenient way to delete rows or columns of matrices. See Assignment Expressions.
warn_empty_list_elements | Built-in Variable |
If the value of warn_empty_list_elements is nonzero print a
warning when an empty matrix is found in a matrix list. For example
a = [1 [], 3, [], 5] The default value is 0. |
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.