このmatlabコードをpythonに変換しようとしています:
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: 対角線の数 (298) がオフセットの数と一致しません (3) args tuple: ('対角線の数(298) はオフセット (3) の数と一致しません',)
ドキュメントを見ると、matlab 関数と python 関数はよく似ています。おそらく私が見逃している違いがありますが。私の質問は今です:私は何を間違っていますか?
edit : z は長さ 300 の配列です