at([])

语法

X[index]

参数

X 可以是一个标量、向量(常规向量/元组/数组向量)、矩阵、表、字典、数据对、函数。

index 可以是一个布尔表达式/布尔值、向量(常规向量/元组/数组向量)、数据对

详情

当 index 是布尔表达式时, 返回 X 中满足于 index 为 True 的元素;否则返回以 index 为索引的元素。若 X 是函数,则 index 将作为函数的参数。该运算符等同于函数 at

注意:当 index 是元组时,at 会将 index 的元素作为 X 每个维度的索引。例如:若 X 是一个向量组成的元组,则 index = (0, 1) 则返回 X 的第 1 个元素中下标为 1 的元素值。

对不同数据形式查找的支持性见下表。

X/index 条件表达式/布尔值 标量 常规向量 数组向量 元组 数据对
标量 × ×
常规向量
元组 ×
数组向量 × ×
矩阵 ×
× ×
字典 × × × ×
数据对 ×
单目函数/双目函数

例子

$ x=5 7 0 4 2 3;
$ x[x>3];
[5,7,4]
$ x at x>3;
[5,7,4]

$ shares=500 1000 1000 600 2000;
$ prices=25.5 97.5  19.2 38.4 101.5;
$ prices[shares>800];
[97.5,19.2,101.5]

// 只返回 2017.01.01 和 2017.01.07之间的工作日。
$ dates=2017.01.01..2017.01.07;
$ dates[x->x.weekday() between 1:5];
[2017.01.02,2017.01.03,2017.01.04,2017.01.05,2017.01.06]

// 索引是 tuple
$ tp = [2.3 2.1 2.2, 3.1 2.9 2.8, 5.7 6.9]
$ tp at [1 2 3, 0 1 2]
([3.1,2.9,2.8],[5.7,6.9,],)

$ (sum)[1..10]
55

$ (corr)[1 3 -1, 2 3 4]
-0.5000

相关函数:eachAt