这个函数可以计算任何在列向量数据的滑动中心窗口上操作面向列数据的函数。它是向量化的,因此用内存的使用来换取速度。
对于较小的窗口大小,这优于SMOOTH等函数。但这不仅仅是一个快速移动平均线。你可以指定任何函数句柄操作面向列的数据,并产生标量输出,例如中位数,std,实际值(带标量'p'),范围,min, sum。但你也可以创建自己的函数。例如(相当模糊的)函数句柄
@ (X)所有(bsxfun (@gt X(装天花板(大小(X, 1) / 2),:), X(1:地板(大小(X, 1) / 2),:)), 1) &
(bsxfun (@ge X(装天花板(大小(X, 1) / 2),:), X(装天花板(大小(X, 1) / 2) + 1:,:)), 1)
将返回一个逻辑数组,该数组指示给定窗口大小的局部最大值,只报告第一个最大值。
引用作为
大卫·j·麦克(2021)。计算滑动窗口中的任意函数(//www.tatmou.com/matlabcentral/fileexchange/58949-compute-arbitrary-function-in-sliding-window), MATLAB中央文件交换。检索.