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 に答える