矩阵的一个或两个维度可以为零,对空矩阵的运算按照 Carl de Boor 在
"An Empty Exercise"(SIGNUM,第 25 卷,第 2–6 页,1990 年)
以及 C. N. Nett 与 W. M. Haddad 在 "A System-Theoretic
Appropriate Realization of the Empty Matrix Concept"(IEEE Transactions
on Automatic Control,第 38 卷,第 5 期,1993 年 5 月)
中的描述进行处理。
简而言之,给定标量 s,一个 m×n
矩阵 M(mxn),和一个 m×n 空矩阵
[](mxn)(其中一个或两个维度为零),以下运算成立:
s * [](mxn) = [](mxn) * s = [](mxn)
[](mxn) + [](mxn) = [](mxn)
[](0xm) * M(mxn) = [](0xn)
M(mxn) * [](nx0) = [](mx0)
[](mx0) * [](0xn) = 0(mxn)
默认情况下,空矩阵的维度会与空矩阵符号 ‘[]’ 一同打印。
内置变量 print_empty_dimensions 控制此行为。
val = print_empty_dimensions () ¶old_val = print_empty_dimensions (new_val) ¶old_val = print_empty_dimensions (new_val, "local") ¶查询或设置内部变量,该变量控制是否将空矩阵的维度与空矩阵符号 ‘[]’ 一同打印。
例如,表达式
zeros (3, 0)
将打印
ans = [](3x0)
当在函数内部使用 "local" 选项调用时,该变量会在函数及其调用的任何子程序范围内进行局部更改。
退出函数时恢复原始变量值。
另请参阅: format.
空矩阵也可用于赋值语句,作为删除矩阵行或列的便捷方式。 请参阅 赋值表达式。
当 Octave 解析矩阵表达式时,它会检查列表中的元素是否为常量。 如果是,则将列表替换为单个矩阵常量。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2