如何创建一个上三角矩阵

4

我需要创建一个上三角形矩阵,给定一组值(顺序不重要)。矩阵可能太大以至于无法手动输入。 np.triu 只能给出现有矩阵的上三角形,而不能创建新的矩阵。

我正在进行一些优化来获取协方差矩阵的上三角形 Cholesky 根参数。我的参数是某些协方差矩阵的上三角形 Cholesky 根。为了初始化,我需要将参数值放在上三角形的位置。

array([[ a,  b,  c],
       [ 0,  d,  e],
       [ 0,  0,  f]])

抱歉,您希望得到什么输出?(我是指从您的[1,2,3],... [10,11,12]输入中。) - DSM
@DSM,我已经编辑了问题。 - MLE
我倾向于创建一个空矩阵,并使用索引填充它,就像这里所示。那样行得通吗? - DSM
@DSM,看起来可以了。让我再试一次。 - MLE
1个回答

4

我有同样的问题,所以我不想让这个问题没有答案。根据@DSM的建议,我创建了下面的函数:

import numpy as np

def create_upper_matrix(values, size):
    upper = np.zeros((size, size))
    upper[np.triu_indices(3, 0)] = values
    return(upper)

c = create_upper_matrix([1, 2, 3, 4, 5, 6], 3)
print(c)

通过添加从数据中推断所需矩阵大小的功能,可以改进此功能,但现在它依赖于用户提供该信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接