【问题标题】:How to create a specific upper triangular matrix?如何创建特定的上三角矩阵?
【发布时间】:2021-02-22 09:52:18
【问题描述】:

我想在 python 中(使用numpy)创建一个上三角矩阵,格式如下:

[[ 1,  c,  c^2],
 [ 0,  1,  c  ],
 [ 0,  0,  1  ]])

其中c 是一个有理数,矩阵的秩可能不同(2、3、4,...)。除了创建行并堆叠它们之外,还有什么聪明的方法吗?

【问题讨论】:

    标签: python numpy matrix linear-algebra


    【解决方案1】:
    r = 3
    c = 3
    i,j = np.indices((r,r))
    np.triu(float(c)**(j-i))
    

    结果:

    array([[1., 3., 9.],
           [0., 1., 3.],
           [0., 0., 1.]])
    

    【讨论】:

      【解决方案2】:

      可能有更直接的解决方案,但这是我想出的:

      import numpy as np
      
      c=5
      m=np.triu(c**np.triu(np.ones((3,3)), 1).cumsum(axis =1))
      print(m)
      

      输出:

      [[ 1.  5. 25.]
       [ 0.  1.  5.]
       [ 0.  0.  1.]]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-15
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多