Постоянное изменение формулы параметра внутри a для l oop in python - PullRequest
1 голос
/ 21 апреля 2020

Я хочу запустить вложенное значение для l oop в python, где оно должно работать до заданного c порогового значения переменной, определенной в l oop. После порога я хотел бы продолжить l oop и изменить формулу параметра навсегда. Я надеюсь, что в следующем примере я смогу показать вам, что я хочу сделать.

import numpy as np
a=np.linspace(1,10,10)
b=np.linspace(0,20,10)

t=np.zeros([len(a),len(b)])

for i in range(0,len(a)):
    for j in range(0,len(b)):
        t[i,j]=a[i]+3*b[j]
        if t[i,j]>30:
           t[i,j]=a[i]+b[j]
        else:
           continue      

В указанном c l oop уравнение t изменяется, когда пороговое значение равно Достигается, а затем возвращается к первоначальному и продолжается в l oop. Моя цель состоит в том, чтобы после порогового значения навсегда изменить уравнение t и продолжить с этим для остальной части l oop.

Ответы [ 2 ]

2 голосов
/ 21 апреля 2020

Вы имеете в виду что-то подобное?

import numpy as np
a=np.linspace(1,10,10)
b=np.linspace(0,20,10)

t=np.zeros([len(a),len(b)])

THRESHOLD = 30
reached_threshold = False

for i in range(0,len(a)):
    for j in range(0,len(b)):
        if not reached_threshold:
            t[i,j]=a[i]+3*b[j]
            if t[i,j] > THRESHOLD:
                reached_threshold = True
                t[i,j]=a[i]+b[j] 
        else:
            t[i,j]=a[i]+b[j]   
2 голосов
/ 21 апреля 2020

Вы можете использовать дополнительную переменную, чтобы указать, достигли ли вы желаемого критерия для переключения на другую функцию:

Пример:

import numpy as np
a=np.linspace(1,10,10)
b=np.linspace(0,20,10)

t=np.zeros([len(a),len(b)])

threshold_flag = False
for i in range(0,len(a)):
    for j in range(0,len(b)):
        if threshold_flag:
            t[i,j] = a[i] + b[j]
        else:
            t[i,j]=a[i]+3*b[j]
            if t[i,j]>30:
               t[i,j] = a[i] + b[j]
               threshold_flag = True
            else:
               continue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...