---
source_url: https://docs.dolphindb.cn/zh/progr/operators/eachAt.html
fetched_at: 2026-05-19T09:01:37Z
category: progr
title: eachAt(@)
sha1: adcb1c685f72fecd29ec967e3de2c4243e0e344c
---

# eachAt(@)

## 语法

- `X@index`
- `eachAt(X, index)`

## 参数

- `X` 可以是一个标量、向量（常规向量/元组/数组向量)、矩阵、表、字典、数据对、单目函数。
- `index` 可以是一个布尔表达式/布尔值、向量（常规向量/元组/数组向量)、数据对

## 详情

当 index 是布尔表达式时， 返回 X 中满足于 index 为 True 的元素；否则返回以 index 为索引的元素。若 X
是函数，则 index 将作为函数的参数。

eachAt 和 at 用法类似，其不同点在于：

(1) 当 index 是元组时：

- at 会将 index 的元素作为 X 每个维度的索引。例如：若 X 是一个向量组成的元组，则 index =
  (0, 1) 则返回 X 的第 1 个元素中下标为 1 的元素值。
- eachAt，则将 index 中的每个元素都作为一维索引，返回 X 中对应 index 的元素。例如：若 X
  是一个向量组成的元组，则 index = (0, 1) 则返回 X 的第 1 个元素和第 2 个元素。

(2) 当 X 是函数时：

- at 既支持单目函数又支持多目函数。
- eachAt 仅支持单目函数。

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

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

## 例子

```dolphindb
v = 3.1 2.2 4.5 5.9 7.1 2.9
eachAt(v, v > 3)
```

输出返回：[3.1,4.5,5.9,7.1]

```dolphindb
v @ 1:3
```

输出返回：[2.2,4.5]

```dolphindb
v @ (:4)
```

输出返回：[3.1,2.2,4.5,5.9]

```dolphindb
v @ (3:)
```

输出返回：[5.9,7.1,2.9]

```dolphindb
// 当 index 是索引时 eachAt 和 at 的区别
tp = [2.3 2.1 2.2, 3.1 2.9 2.8, 5.7 6.9]
tp @ [1 2 3, 0 1 2]
```

输出返回：(([3.1,2.9,2.8],[5.7,6.9],),([2.3,2.1,2.2],[3.1,2.9,2.8],[5.7,6.9]))

```dolphindb
tp at [1 2 3, 0 1 2]
```

输出返回：([3.1,2.9,2.8],[5.7,6.9,],)

```dolphindb
sum @ 6 2 3 NULL 2 -3
```

输出返回：10

```dolphindb
// 由于 seq(..) 优先级比 @ 低，所以此处必须添加括号 
sum @ (1..10)
```

输出返回：55

相关函数：[at](at.html)
