Я пытаюсь перевести этот MatLab код на Python:Перевести код MatLab для питона (SciPy)
T = length(z);
lambda = 10;
I = speye(T)
D2 = spdiags(ones(T-2,1)*[1 -2 1],[0:2],T-2,T);
z_stat = (I-inv(I + lambda^2*D2'*D2))*z;
То, что я получил на данный момент:
T = len(signal)
lam = 10;
I = np.identity(T)
D2 = scipy.sparse.spdiags(np.ones((T-2,1),dtype=np.int)*[1,-2,1],(range(0,3)),T-2,T);
На данный момент я получаю эту ошибку
"scipy.sparse.sp...ge(0,3)),T-2,T)" ValueError: number of diagonals (298) does not match the number of offsets (3) args tuple: ('number of diagonals (298) does not match the number of offsets (3)',)
При взгляде на документацию функция matlab и функция python очень похожи. Хотя, вероятно, есть разница, которой я не хватает. Теперь мой вопрос: что я делаю неправильно?
редактировать: г массив длиной 300
Какую версию питона ? –
У меня есть python 2.7 – Ojtwist