我有一个python代码,我正试图转换成Matlab代码。该代码用于波的基线校正。在
def baseline_als(y, lam, p, niter=20):
L = len(y)
D = sparse.csc_matrix(np.diff(np.eye(L), 2))
w = np.ones(L)
for i in xrange(niter):
W = sparse.spdiags(w, 0, L, L)
Z = W + lam * D.dot(D.transpose())
z = spsolve(Z, w*y)
w = p * (y > z) + (1-p) * (y < z)
return z
我试过像这样转换。在
^{2}$然而,在octave/matlab中没有名为spsolve
和spdiag
的函数。有什么其他的功能可以用吗?在
如果你知道spsolve是做什么的,这很简单。让我们集中精力,as ^{} seems easier to solve ,不是吗?在
spsolve
“求解稀疏线性系统Ax=b,其中b可以是向量或矩阵。”这正是MATLABs
\
或mldivide
所做的,它解决了一个Ax=b,for x的系统。很高兴,MATLAB可以用相同的函数处理稀疏矩阵和稠密矩阵,因此更改应该很容易:发件人:
收件人:
^{pr2}$相关问题 更多 >
编程相关推荐