IDL for循环覆盖数据

时间:2014-03-21 10:13:16

标签: idl-programming-language

我的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

看来,我的程序会覆盖前一个循环步骤的数据。当我制作散点图时,我也只有最后一个循环步骤的点......

你知道我的错吗? 非常感谢! 基基

1 个答案:

答案 0 :(得分:0)

您没有在您显示的代码中分配给dwd(并且代码因为enddo而无法按原样编译 - 我认为您必须重写代码而不是复制和过去由于某种原因?)。