def vec_to_X(v_X):
n = int(math.sqrt(2 * len(v_X)))
if len(v_X) != n * (n + 1) / 2:
raise ValueError(
"v_X is not the right shape for a vectorized lower triangular matrix. Tried to turn vector of size {} into matrix with width {} ".format(len(v_X), n))
Y = np.zeros((n, n))
Y[np.tri(n, dtype=np.bool).T] = v_X
return Y + np.triu(Y, 1).T
评论列表
文章目录