我正在慢慢地学习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
元素的向量。任何帮助都会很棒。谢谢!
答案 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]])