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) | ⇒ | (错误) |