Я работаю над разработкой набора классификаторов для сигналов ЭЭГ, и мне понадобится функция пересечения нуля вокруг среднего значения, определенная следующим образом:
В идеале, если у меня есть какой-либо вектор с диапазоном значений, представляющих синусоиду или любой изменяющийся во времени сигнал, я хочу вернуть вектор с булевыми значениями того же размера, что и вектор, говоря, является ли это конкретное значение средним пересечением. У меня есть следующая реализация Matlab:
ZX = @(x) sum(((x - mean(x)>0) & (x - mean(x)<0)) | ((x - mean(x)<0) & (x - mean(x)>0)));
Тестирование на игрушечных данных:
[0 4 -6 9 -20 -5]
Выход:
0
РЕДАКТИРОВАТЬ: Тем не менее я считаю, что он должен вернуться :
3
Что мне здесь не хватает?