如何在for循环中创建具有不同名称的矩阵

时间:2016-05-02 17:59:37

标签: python numpy matrix

我想创建矩阵1x5:matriz1matriz2matriz3,值为i + j,但我的代码不起作用。有人能帮助我吗?

import numpy as np

for i in range(3):
    name= 'matriz%d'%i
    name= np.zeros((1,5))

for i in range(3):
    name2 = 'matriz%d'%i
    for j in range(5):
        name2[j]=i+j

for i in range(3):
    name3 = 'matriz%d'%i
    print(name3)

1 个答案:

答案 0 :(得分:1)

在Python中,这两行只是将两个不同的对象分配给变量name

name= 'matriz%d'%i        # assign a string
name= np.zeros((1,5))     # assign an array

其他一些语言的机制允许您将字符串用作变量名称,例如$name = ...。但在Python中,即使不是不可能,也很尴尬。相反,你应该使用结构,例如字典。

e.g。

adict = {}
for i in range(3):
   name= 'matriz%d'%i
   adict[name] = np.zeros((1,5))

然后,您可以通过字典引用访问此数组,例如:adict['matriz3']

您还可以使用列表,并按编号或列表迭代访问各个数组:

alist = [np.zeros((1,5)) for i in range(3)]

for i,A in enumerate(alist):  # iteration with index
    A[:] = i+np.arange(5)
for a in alist:   # simple iteration
    print(a)