我有一个尺寸为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循环来实现这一点。
答案 0 :(得分:1)
使用list
或dict
表示可变数量的变量。在这种情况下,您可以使用字典理解,将字典键与幂对齐:
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]])}