我在IDL中的for循环有问题。
for sl=0,2 do begin ; number of hours
for t=90,90 do begin ; timesteps each hour
for rad_num = 0, 3 do begin ; number of radars
for ibin = 0, 333 do begin ; distance to radar
for iray = 0, 359 do begin ; angle
if finite(input(ibin,iray,rad_num)) eq 1 then begin
bin = bin_index(ibin,iray,rad_num)
ray = ray_index(ibin,iray,rad_num) ; necessary because of different grids
array(sl,t,ray,bin)=array(sl,t,ray,bin)+ input(ibin,iray,rad_num)
array_N(sl,t,ray,bin) = array_N(sl,t,ray,bin) + 1.
endif
endfor
endfor
endfor
endfor
endfor
array = array / array_N
当我在第一个sl-loop-step之后停止程序时,我得到以下结果:
print, array[0,90,315,49]
44.0.673
但当我不停止程序时,我会得到这样的结果:
print, array[0,90,315,49]
-NaN
看起来,我的程序覆盖了前一个循环步骤的数据。当我绘制散点图时,我也只有最后一个循环步骤的点……
你看到我的错误了吗?非常感谢!kiki
发布于 2014-03-21 23:54:09
您在所显示的代码中没有为dwd
赋值(并且由于结尾的原因,代码不能按原样编译--我假设您出于某种原因必须重写代码,而不是复制并传递?)。
https://stackoverflow.com/questions/22555835
复制相似问题