def extend_2pol_npol(x, npol):
if npol == 2:
return x
if scipy.sparse.isspmatrix_dia(x):
y = scipy.sparse.diags(extend_2pol_npol(x.diagonal(), npol))
elif len(x.shape) == 1:
y = np.zeros(len(x)//2*npol)
y[0::npol] = x[0::2]
y[1::npol] = x[1::2]
elif len(x.shape) == 2:
y = np.zeros((x.shape[0]//2*npol, x.shape[1]//2*npol))
y[0::npol, 0::npol] = x[0::2, 0::2]
y[0::npol, 1::npol] = x[0::2, 1::2]
y[1::npol, 0::npol] = x[1::2, 0::2]
y[1::npol, 1::npol] = x[1::2, 1::2]
else:
raise SMRTError("should never be here")
return y
评论列表
文章目录