我正在尝试将此 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 元组不匹配: ('对角线数(298) 与偏移数不匹配 (3)',)
查看文档时,matlab函数和python函数非常相似。尽管我可能遗漏了一些差异。我现在的问题是:我做错了什么?
编辑: z 是一个长度为 300 的数组