首页 文章

使用python通过内部循环中的相同矩阵 - 矩阵乘法创建不同的矩阵

提问于
浏览
-1

我有一个维数为n * n的方阵 . 我必须定义一个函数,它将此矩阵 A 作为输入,也是一个值 k . 矩阵A是由numpy随机函数生成的随机矩阵 . 假设k = 4,那么我们必须生成三个不同的矩阵,这样:

matrix_2=A*A
 matrix_3=A*A*A
 matrix_4=A*A*A*A

其中上面的所有乘法都是矩阵乘法(其中列A = B的行),而不是元素乘法 .

k可以具有用户给出的任何值 . 我们如何在python中使用for循环实现它 .

1 回答

  • 1

    使用 listdict 表示可变数量的变量 . 在这种情况下,您可以使用字典理解,字典键与电源对齐:

    from numpy.linalg import matrix_power
    
    np.random.seed(0)
    
    n = 2
    A = np.random.random((n, n))
    
    def make_arrays(arr, k):
        return {i: matrix_power(arr, i) for i in range(1, k+1)}
    
    res = make_arrays(A, 4)
    

    结果:

    {1: array([[0.5488135 , 0.71518937],
               [0.60276338, 0.54488318]]),
     2: array([[0.73228622, 0.78220024],
               [0.65924031, 0.72798764]]),
     3: array([[0.87337022, 0.94993107],
               [0.80060427, 0.86814988]]),
     4: array([[1.05190103, 1.14222656],
               [0.96267139, 1.04562393]])}
    

相关问题