matlab - 如果窗口中缺少大量原始数据点,则将 movmean 值设置为 NaN

标签 matlab missing-data moving-average threshold

我有一个一维数据文件,其中偶尔包含 NaN 值。如果我将 movmean 应用于此输入数据,如果移动窗口内的输入值数量大于阈值,是否有一种简单的方法可以将 movmean 值设置为 NaN?例如,如果窗口长度为 10,阈值为 3,我希望这组 10 个值的 movmean 值为 NaN:

[1 3 NaN 4 NaN 2 5 NaN NaN 3] 

但是给我这组 10 个值的有效 movmean 值:

[1 3 2 4 NaN NaN 3 2 5 3]

最佳答案

这是一个 matlab 问题,您可以执行以下操作:

w = 10; t = 3;
A = [1 3 NaN 4 NaN 2 5 NaN NaN 3];
M = movmean(A,w,'omitnan');
N = movsum(isnan(A),w) >= t;
M(N) = NaN;

关于matlab - 如果窗口中缺少大量原始数据点,则将 movmean 值设置为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71280489/

相关文章:

matlab - 通过将数字分组到一个范围内来在 matlab/octave 中绘图

matlab - 自己的快速傅里叶变换算法的实现不起作用

python - pandas:用列中最后一个非 NaN 值替换 NaN

c - ADC 移动平均线

matlab - 我如何知道运行脚本/函数需要哪个最低 MATLAB 版本?

matlab - 高斯-赛德尔法超过机器数?

编译错误 "name in formal parameter list illegal"

postgresql - Last Observation Carried Forward (LOCF) 是否在 PostgreSQL 中实现?

r - 在R中按组应用滚动均值

variables - R中 "variable (number of points included)"移动平均值的高效计算