4.1.1 空矩阵

矩阵的一个或两个维度可以为零,对空矩阵的运算按照 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