Python-具有叠瓦循环的特定于属性的值

Python-具有叠瓦循环的特定于属性的值,python,for-loop,numpy,while-loop,break,Python,For Loop,Numpy,While Loop,Break,我在用叠瓦循环存储值时遇到了一些问题。。。 这是一个与我的案例接近的例子。 为了限制代码的大小,我添加了“a”作为随机值 对于每个“图像”,我必须计算dX,如果我能达到我的标准,我会输入一个特定的值(100),然后我打破循环转到下一个图像!若我不能在迭代最大值之前收敛,我将强制另一个值(1),并为下一个图像案例中断太多循环 import numpy res = zeros((len(range(0,5,1)),2)) #array of results dX = 10. #my impor

我在用叠瓦循环存储值时遇到了一些问题。。。 这是一个与我的案例接近的例子。 为了限制代码的大小,我添加了“a”作为随机值

对于每个“图像”,我必须计算dX,如果我能达到我的标准,我会输入一个特定的值(100),然后我打破循环转到下一个图像!若我不能在迭代最大值之前收敛,我将强制另一个值(1),并为下一个图像案例中断太多循环

import numpy 

res = zeros((len(range(0,5,1)),2)) #array of results

dX = 10. #my important value which allow stop loop for one "image"
n = 0 #number of iteration
itmax = 5. #my iteration max value 


#I have to achieve calculations on a great number of cases (image - and i want to store results of each case in "res array")

for image in range(0,5,1):

  a = randint(0,9) #for this example, i added a random value to treat the problem

  while abs(dX) > 5.: 

    dX = a - n

    if abs(dX) < 5.:
      res[image,0] = 100.
      res[image,1] = 100.

    elif n==itmax: 
      res[image,0] = 1.
      res[image,1] = 1.
      break

    n = n+1

res
导入numpy
res=零((len(范围(0,5,1)),2))#结果数组
dX=10#我的重要值,允许一个“图像”停止循环
n=0#迭代次数
itmax=5#我的迭代最大值
#我必须在大量情况下进行计算(如图所示,我希望将每个情况的结果存储在“res array”中)
对于范围(0,5,1)内的图像:
a=randint(0,9)#在这个例子中,我添加了一个随机值来处理这个问题
当abs(dX)>5时:
dX=a-n
如果abs(dX)<5:
res[image,0]=100。
res[image,1]=100。
elif n==itmax:
res[image,0]=1。
res[image,1]=1。
打破
n=n+1
物件

但目前我得到的总是零数组,因为它不会发生…

我仍然想知道您正在尝试做什么,但这段代码似乎已经更合理,可以按照您的要求工作:

from __future__ import print_function

import numpy as np
import pylab

nb_images = 5

# array of results
results = np.zeros([nb_images, 2])

# my iteration max value
itmax = 5.

# I have to achieve calculations on a great number of cases (image -
# and I want to store results of each case in "res array")
for image in range(nb_images):
    # my important value which allow stop loop for one "image"
    dX = 10.
    # for this example, I added a random value to treat the problem
    a = pylab.randint(0, 9)

    print('dX:', dX, '(entering the while loop...)')
    n = 0
    while dX > 5:
        dX = a - n
        if dX < 5:
            results[image, :] = 100.
        elif n == itmax:
            results[image, :] = 1.
            break
        n += 1
        print('dX:', dX)

print(results)
from\uuuuu future\uuuuu导入打印功能
将numpy作为np导入
进口派拉布
nb_图像=5
#结果数组
结果=np.零([nb_图像,2])
#我的迭代最大值
itmax=5。
#我必须在大量情况下实现计算(图-
#我想在“res array”中存储每个案例的结果
对于范围内的图像(nb_图像):
#我的重要值,允许一个“图像”停止循环
dX=10。
#对于这个例子,我添加了一个随机值来处理这个问题
a=pylab.randint(0,9)
打印('dX:',dX'(进入while循环…)
n=0
当dX>5时:
dX=a-n
如果dX<5:
结果[图像:]=100。
elif n==itmax:
结果[图像,:]=1。
打破
n+=1
打印('dX:',dX)
打印(结果)
除了修改以尊重(顺便说一句,你应该使用一个好的编辑器来帮助你指出简单的错误和样式问题。一个好的初学者编辑器就是一个例子),我在for循环中移动了
dX=10
n=0
,并在
dX
的条件下移除
abs
。我希望它能帮助您编写更好的Python代码。

谢谢您的帮助!;)但是我想问为什么我仍然有一些值等于零。。。?对我来说,u只能有1或100作为值,这是我所期望的,我想我必须指定