我想这个MATLAB代码转换为蟒:翻译MATLAB代码到Python(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函数非常相似。虽然可能有一个我失踪的差异。我现在的问题是:我做错了什么?
编辑:z是长度为数组300
蟒蛇的哪个版本? –
我有Python 2.7 – Ojtwist