---
source_url: https://docs.dolphindb.cn/zh/funcs/m/mtoprange.html
fetched_at: 2026-05-19T09:32:49Z
category: funcs
title: mTopRange
sha1: 3470ae7e7a9079418e23d400c4b3c85a82189e8a
---

# mTopRange

## 语法

`mTopRange(X, window, [minPeriods])`

窗口计算规则请参考：[mFunctions](../themes/mFunctions.html)

## 详情

在给定长度（以元素个数或时间长度衡量）的滑动窗口内，统计每个元素 Xi 左侧相邻且连续小于它的元素个数。NULL 被视为最小值。

若 *X* 是矩阵，在每列内进行上述计算。

## 参数

**X**  是一个向量/矩阵/表/元组（元素为标量或等长向量）/字典。

**window** 是大于等于 2 的正整型或 DURATION 标量。表示滑动窗口的长度。

注：

在流计算引擎中调用滑动窗口函数时，window 的上限为 102400。

**minPeriods** 是一个正整数。为滑动窗口中最少包含的观测值数据。

## 返回值

- 输入为向量时，返回一个与输入等长的向量。
- 输入为矩阵时，返回一个与输入矩阵同维度的矩阵，每列分别计算。
- 输入为表时，返回一个与输入表结构相同的表。
- 输入为元组时，返回对应的元组结构。

## 例子

```dolphindb
x = [NULL, 3.1, NULL, 3.0, 2.9, 2.8, 3.1, NULL, 3.2]
mTopRange(x, window=3)
// output: [,,0,1,0,0,2,0,2]

mTopRange(x, window=3, minPeriods=1)
// output: [,1,0,1,0,0,2,0,2]

x = [NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, 3.2]
date = [0, 1, 2, 3, 7, 8, 9, 10, 11] + 2020.01.01
X = indexedSeries(date, x) 
mTopRange(X, 3d)
```

|  | #0 |
| --- | --- |
| 2020.01.01 |  |
| 2020.01.02 |  |
| 2020.01.03 |  |
| 2020.01.04 |  |
| 2020.01.08 |  |
| 2020.01.09 | 1 |
| 2020.01.10 | 0 |
| 2020.01.11 | 0 |
| 2020.01.12 | 2 |

```dolphindb
m = matrix(1 2 3 NULL, 1 2 NULL 3, 1 3 NULL NULL, 1 2 3 4)
mTopRange(m, 2)
```

| #0 | #1 | #2 | #3 |
| --- | --- | --- | --- |
|  |  |  |  |
| 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 0 | 1 |  | 1 |
