2015-07-14 17 views
-1

часть моего кода:Как добавить еще один цикл?

list1 = zeros((x,y)) 

for j in range(1,y): 
    for i in range(1, x-1): 
     list1[i,j] = list1[i,j-1] + Equation 

Это прекрасно работает. Однако, когда я хочу перейти на следующий этап, мне нужно изменить часть «Уравнение» во втором цикле. Скажите, что уравнение равно (a*b+c)*d, я хочу сделать один из parameters(a,b,c,d), изменяющийся с каждым увеличением в j.

То есть, когда j есть 1, a = something. Когда j увеличивается до 2, а изменяется согласно. Это похоже на функцию j. Например: a = A*cos(w*j).

Моя проблема заключается в том, как мне связать это отношение с кодом так, чтобы a будет обновляться каждый раз?

+0

обновление 'a', а затем обновить' list1' ... – LittleQ

ответ

1

Просто добавьте выражение во внешнем контуре, вычисляя a на основе изменяющегося значения j:

for j in range(1, y): 
    a = A * cos(w * j) 
    for i in range(1, x-1): 
     list1[i, j] = list1[i, j - 1] + (a * b + c) * d 
+0

Так просто? Благодаря! У меня есть другой вопрос: что, если a зависит не от j, но я хочу сказать + = 0,001 для каждого увеличения j? –

+0

@ sopho-J: тогда просто сделайте это. Установите 'a = start_value' вне циклов и увеличивайте' a' во внешнем цикле, чтобы оно варьировалось с 'j'. Или сделать его функцией 'j',' a = start_value + (j * 0.001) 'даст вам то же значение. –

Смежные вопросы