---
source_url: https://docs.dolphindb.cn/zh/funcs/m/mifirstNot.html
fetched_at: 2026-05-19T09:31:43Z
category: funcs
title: mifirstNot
sha1: 9d6f9dd6abc030ab92642839c7441875756bd0fd
---

# mifirstNot

## 语法

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

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

## 详情

在给定长度（以元素个数或时间长度衡量）的滑动窗口内计算 *X* 的第一个非空元素的下标。

## 参数

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

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

注：

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

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

## 返回值

- 当 *X* 是向量时，返回一个向量。
- 当 *X* 是矩阵时，返回一个矩阵。
- 当 *X* 是表时，对表的每列进行计算，返回相应的结果。
- 当 *X* 是元组时，对元组中的每个向量分别计算，返回相应的结果。

## 例子

```dolphindb
v = NULL NULL 2 3 4 8 NULL 5 -2 3 -1 0 NULL
mifirstNot(v, 3)
// output: [,,2,1,0,0,0,0,1,0,0,0,0]

m = matrix(NULL 1 2 3, 1 NULL 2 3, NULL NULL 3 4, 1 2 3 4)
n = mifirstNot(m, 2)
n
```

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

```dolphindb
T = [2022.01.01, 2022.01.02, 2022.01.03, 2022.01.06, 2022.01.07]
X = NULL 2 NULL 4 5
X1 = indexedSeries(T, X)
mifirstNot(X1, 2, 1)
```

|  | #1 |
| --- | --- |
| 2022.01.01 | -1 |
| 2022.01.02 | 1 |
| 2022.01.03 | 0 |
| 2022.01.06 | 0 |
| 2022.01.07 | 0 |
