来自for循环的索引器

2024-09-28 22:24:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前也有过类似的错误,但我通常在执行范围而不是枚举时得到它们。对不起,如果这是个愚蠢的错误,我就是搞不懂。 这是导致出现错误的代码:

maxtemp = 320
temperaturelist = range(10, maxtemp + 1,10)  #this goes from 10 to 320 ins steps of 10
numtemps = np.asarray(temperaturelist).size

#read in actual spectral data, and display
spectraldataactualgrid_values = np.empty((numtemps, 201)) 
spectraldatapoints = np.empty([6432,2])             
spectraldatavalues = np.empty(6432) 

count=0
for i, temperature in enumerate(temperaturelist): 
    wavelengthvector, intensityvector = loadspec(temperature)
    for j, wavelength in enumerate(wavelengthvector):
        spectraldatapoints[count] = [temperature, wavelength]
        spectraldatavalues[count] = intensityvector[j] 
        spectraldataactualgrid_values[i, j] = intensityvector[j]
        count+=1

#loadspec comes from a previous definition where I load in my spectral data

错误消息:

IndexError  Traceback (most recent call last)
<ipython-input-18-6f2072c90554> in <module>()
 77         spectraldatapoints[count] = [temperature, wavelength]
 78         spectraldatavalues[count] = intensityvector[j]
---> 79         spectraldataactualgrid_values[i, j] = intensityvector[j]
 80         count+=1
 81 # plt.figure(1)

IndexError: index 201 is out of bounds for axis 1 with size 201

编辑**** 因此,对于前面的错误,我发现我必须将spectraldataactualgrid_中的201值切换到2415(强度向量的大小)。但是,现在的错误是:

IndexError  Traceback (most recent call last)
<ipython-input-26-d0f8f1371388> in <module>()
     56 #     #print(len(wavelengthvector))
     57     for j, wavelength in enumerate(wavelengthvector):
---> 58         spectraldatapoints[count] = [temperature, wavelength]
     59 
     60         spectraldatavalues[count] = intensityvector[j]

IndexError: index 6432 is out of bounds for axis 0 with size 6432

所以我猜某个地方的数字错了


Tags: ofinforcount错误nptemperatureindexerror