Skip to content

16.4.1.3 索引运算符 () ​

子矩阵或索引运算符写作 m(rindex, cindex),其结果包含 m 中行索引由向量 rindex 给出、列索引由向量 cindex 给出的行与列。

在最简单的情况下,如果 rindex 和 cindex 都是标量,则结果也是一个标量:

{10, 20; 30, 40}(1, 1)⇒10
{10, 20; 30, 40}(1, 2)⇒20
{10, 20; 30, 40}(2, 1)⇒30
{10, 20; 30, 40}(2, 2)⇒40

如果索引参数有多个元素,则结果包含多行或多列:

{10, 20; 30, 40}(1:2, 1)⇒{10; 30}
{10, 20; 30, 40}(2, 1:2)⇒{30, 40}
{10, 20; 30, 40}(1:2, 1:2)⇒{10, 20; 30, 40}

特殊参数 “:” 可以代表被索引矩阵中的所有行或列,如下所示:

{10, 20; 30, 40}(:, 1)⇒{10; 30}
{10, 20; 30, 40}(2, 😃⇒{30, 40}
{10, 20; 30, 40}(:, 😃⇒{10, 20; 30, 40}

索引参数不必有序,也可以包含重复值,如下所示:

{10, 20; 30, 40}({2, 1}, 1)⇒{30; 10}
{10, 20; 30, 40}(2, {2; 2; 1})⇒{40, 40, 30}
{10, 20; 30, 40}(2:1:-1, 😃⇒{30, 40; 10, 20}

当被索引的矩阵是行或列向量时,只需要一个索引参数,如下所示:

{11, 12, 13, 14, 15}(2:4)⇒{12, 13, 14}
{11; 12; 13; 14; 15}(2:4)⇒{12; 13; 14}

当索引不是整数时,PSPP 会丢弃其小数部分。索引小于 1 或大于行数或列数时出错:

{11, 12, 13, 14}({2.5, 4.6})⇒{12, 14}
{11; 12; 13; 14}(0)⇒(错误)

基于 GNU PSPP 2.0.1 手册与入门教程整理