Matlab фильтр () с SciPy lfilter () - PullRequest
       19

Matlab фильтр () с SciPy lfilter ()

7 голосов
/ 19 января 2012

В соответствии с их документацией для Matlab filter () и SciPy lfilter () кажется, что они должны быть "совместимыми".Однако у меня есть проблема с переносом большего кода Matlab в Python, для которого я получаю ValueError: object of too small depth for desired array.Поскольку я не могу придумать, как представить свой источник, не усложнив его, я буду использовать пример, приведенный в документации Matlab:

data = [1:0.2:4]';
windowSize = 5;
filter(ones(1,windowSize)/windowSize,1,data)

, который я перевожу в Python на:

import numpy as np
from scipy.signal import lfilter

data = np.arange(1, 4.1, 0.2)
windowSize = 5
lfilter(np.ones((1, windowSize)) / windowSize, 1, data)

В этом случае я получаю:
ValueError: object too deep for desired array

Почему я получаю эти ошибки?

1 Ответ

4 голосов
/ 19 января 2012

Есть ли причина, по которой вы добавляете дополнительное измерение при создании массива единиц?Это то, что вам нужно:

lfilter(np.ones(windowSize) / windowSize, 1, data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...