Как получить результат из цикла for на каждом шаге? - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу получить результат с каждого шага в цикле for и поместить каждый результат с каждого шага в отдельный массив. , кто-нибудь может помочь? это минимум моей программы.

for i in range(3):

    a = np.array(cos(i))

print (a)

Ответы [ 3 ]

0 голосов
/ 19 апреля 2019

Есть два быстрых способа сделать это. Либо добавив их в пустой список arr_list, как показано ниже:

n=3
arr_list=[]

for i in range(n):
    arr_list.append(np.array(cos(i)))

# Here you will have List of Arrays arr_list=[a1, a2, a3]

или присвоение их с помощью команды exec именованному массиву, чтобы в конце у вас была группа массивов a1..an. Тем не менее, это рекомендуется только если у вас очень маленький n.

n=3   

for i in range(n):
   exec("a%s = np.array(cos(i))" %i)

# Here you will have a1, a2, a3
0 голосов
/ 19 апреля 2019
array_list = [[] for i in range(3)]

for i in range(3):
  array_list[i] = np.array(np.cos(i))

print (array_list)

array_list - это список предоставленного вами массива.

0 голосов
/ 19 апреля 2019

Каждый раз в цикле вы можете добавлять в свой список, а затем обращаться ко всем значениям.

result_list = []

stiffness_matrix_total = np.zeros((2*nnode,2*nnode), dtype=np.float)
for i in range(nele): 
    ele_stiff_mat = np.zeros((2*nnode,2*nnode), dtype=np.float)
    a = np.array([[cos[i,0]**2,sin[i,0]*cos[i,0],-(cos[i,0]**2),-cos[i,0]*sin[i,0]],[cos[i,0]*sin[i,0],sin[i,0]**2,-cos[i,0]*sin[i,0],-(sin[i,0]**2)],[-cos[i,0]**2,-sin[i,0]*cos[i,0],cos[i,0]**2,cos[i,0]*sin[i,0]],[-cos[i,0]*sin[i,0],-(sin[i,0]**2),cos[i,0]*sin[i,0],sin[i,0]**2]])

    result_list.append(a)

print (result_list)
...