如何保存循环结果并将其保存在新数组中?

时间:2019-04-06 16:46:01

标签: idl-programming-language

我试图将循环结果保存在一个新数组中,然后绘制它们。 但是现在我只能保存最后一个来自循环的值。如何保存循环中的所有结果?

for j=1,200 do begin
  h = where(o eq j,ct3)
  if (ct3 ne 0) then begin
    mag = a1[h].imag
    bcg = min(mag)
    deltay = pqq[plu2[j]]
    bcg1 = float(bcg)
    u = where(bcg1*deltay ne 0)
    bcg2 = bcg1[u]
    deltay1 = deltay[u]
    print,deltay1,bcg2
    plot,bcg2,deltay1,psym=5
  endif 
endfor

1 个答案:

答案 0 :(得分:0)

要在每次循环中存储可变数量的值,当您要绘制最终数组时,我将使用列表,然后使用toArray方法。

例如,在代码的开头创建一个列表,将结果存储在以下位置:

deltay_list = list()

然后在循环中,将元素添加到列表中:

deltay_list->add, deltay1, /extract

EXTRACT关键字指示您应添加deltay1的各个元素,而不要将deltay添加为列表的单个元素。当您想绘图时,请执行以下操作:

deltay_array = deltay_list->toArray()
obj_destroy, deltay_list
plot, deltay_array