使用for循环在python中创建多维矩阵

时间:2018-01-26 01:34:16

标签: python matlab for-loop matrix multidimensional-array

我正在慢慢地学习MATLAB和Python之间的差异,并希望知道如何在Python中用Python完成以下操作:

Ak = zeros(3,3,N);
for t = 1:N
    Ak(:,:,t) = [
    a(t) 0 0;
    0 a(t) 0;
    0 0 a(t);
    ];
end

a(t)只是一个包含N元素的向量。任何帮助都会很棒。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用NumPy进行矩阵计算。这是一个例子。

import numpy as np
N = 256
a = np.arange(N)
Ak = np.zeros((3,3,N))
for t in range(N):
    Ak[:,:,t] = np.array([[a[t], 0, 0],
                          [0, a[t], 0],
                          [0, 0, a[t]]])

如果您使用具有不同维度顺序的Ak,如[N,3,3],则可以稍微简化代码。

import numpy as np
N = 256
a = np.arange(N)
Ak = np.zeros((N,3,3))
for ak, _a in zip(Ak, a):
    ak[:, :] = np.array([[_a, 0, 0],
                         [0, _a, 0],
                         [0, 0, _a]])