我试图将循环结果保存在一个新数组中,然后绘制它们。但是现在我只能保存最后一个来自循环的值。如何保存循环中的所有结果?
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
要在每次循环时存储可变数量的值,我会使用一个列表,然后使用toArray
方法,以便绘制最终数组。
例如,在代码的开头创建一个列表来存储结果:
deltay_list = list()
然后在循环中,将元素添加到列表中:
deltay_list->add, deltay1, /extract
EXTRACT
关键字表示您应该添加deltay1
的各个元素,而不是将deltay
添加为列表的单个元素。当你想要绘图时,那么:
deltay_array = deltay_list->toArray()
obj_destroy, deltay_list
plot, deltay_array