0

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

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

你看到我的错误了吗?非常感谢!琪琪

4

1 回答 1

0

您没有dwd在显示的代码中分配给(并且由于 enddo 的原因,代码不会按原样编译 - 我假设您必须重写代码而不是出于某种原因复制并粘贴?)。

于 2014-03-21T15:54:09.010 回答