我的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步骤后停止程序时,我得到以下内容:
print, array[0,90,315,49]
44.0.673
但是当我不停止该计划时,我得到了这个:
print, array[0,90,315,49]
-NaN
看来,我的程序会覆盖前一个循环步骤的数据。当我制作散点图时,我也只有最后一个循环步骤的点......
你知道我的错吗? 非常感谢! 基基答案 0 :(得分:0)
您没有在您显示的代码中分配给dwd
(并且代码因为enddo而无法按原样编译 - 我认为您必须重写代码而不是复制和过去由于某种原因?)。