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

问题描述 投票:-1回答:1

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

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
idl-programming-language
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.