---
source_url: https://docs.dolphindb.cn/zh/funcs/m/mavg.html
fetched_at: 2026-05-19T09:31:10Z
category: funcs
title: mavg
sha1: f9947a79025c1023dc5bd7d0064fa23f3c7b3b7b
---

# mavg

## 语法

`mavg(X, window|weights, [minPeriods])`

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

## 详情

计算滑动窗口内的移动平均值。支持按固定窗口长度或指定权重向量进行计算。

- *window*：在给定长度（以元素个数或时间长度衡量）的滑动窗口内计算 *X*
  元素的平均值。
- *weights*：表示权重向量，用于在长度为 size(*weights*)的滑动窗口中计算
  *X* 的加权平均值。权重顺序与窗口中数据一一对应。size(*weights*) 的有效范围是[0,
  1024]。结果中前(size(*weights*) - 1)个元素为 NULL。若指定了 *weights*，则
  *minPeriods* 无效。

若 *X* 为矩阵/表则在每一列进行计算。

## 参数

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

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

注：

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

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

## 返回值

当 *X* 为向量时：返回与 *X* 长度相同的向量。

若 *X* 为矩阵/表，返回与输入具有相同维度的矩阵或表。

## 例子

```dolphindb
X = 7 4 6 0 -5 32 9 8;
Y = 7 4 6 NULL -5 32 9 8;
weight = 2 3 5
mavg(X, 4);
// output: [,,,4.25,1.25,8.25,9,11]

mavg(Y, 4);
// output: [,,,5.67,1.67,11,12,11]

mavg(Y, weight);
// output: [,,5.6,5.2,-1.8571,18.125,13.1,13.1]
```

```dolphindb
m=matrix(1 NULL 4 NULL 8 6 , 9 NULL NULL 10 NULL 2)
m.rename!(2020.01.06 2020.01.07 2020.01.09 2020.01.11 2020.01.12 2020.01.15, `col1`col2)
m.setIndexedMatrix!()
mavg(m, 3d) // 等价于 mavg(m, 3)
```

| label | col1 | col2 |
| --- | --- | --- |
| 2020.01.06 | 1 | 9 |
| 2020.01.07 | 1 | 9 |
| 2020.01.09 | 4 |  |
| 2020.01.11 | 4 | 10 |
| 2020.01.12 | 8 | 10 |
| 2020.01.15 | 6 | 2 |

```dolphindb
mavg(m, 1w)
```

| label | col1 | col2 |
| --- | --- | --- |
| 2020.01.06 | 1 | 9 |
| 2020.01.07 | 1 | 9 |
| 2020.01.09 | 2.5 | 9 |
| 2020.01.11 | 2.5 | 9.5 |
| 2020.01.12 | 4.3333 | 9.5 |
| 2020.01.15 | 6 | 6 |

相关函数：[avg](../a/avg.html)
