在循环中创建结构并分配给 IDL 中的另一个结构

Create structures in loop and assign to another structure in IDL

在 IDL 中,我想在循环中创建一个包含不同数据的结构,然后将它们全部分配给将压缩所有内容的主结构。 我尝试使用结构数组,但由于无法分配给主结构而停止了:

alarm_list = { rg : 0, rf : 4}

alarm = { $  
          Alarm_Id : 0 , $  
          Range :      1, $
          Bin : 0        $ 
        }

arr = REPLICATE(alarm, 4)  
FOR ia = 0, 3 DO BEGIN
    alarm.alarm_id = ia
    alarm.bin = bin
    arr[ia] = alarm
    bin += 1
ENDFOR

我想将所有 4 个不同名称的警报(即警报 1 = 、警报 2 = ...)分配给主“alarm_list”。 谢谢你的回答。

您可以沿着这些方向尝试一些事情,直接分配给数组而不是使用 alarm 变量作为中间变量:

alarm_list= REPLICATE({alarm, Alarm_Id:0, Range:1, Bin:0},4)

FOR ia = 0, 3 DO BEGIN
    alarm_list[i].alarm_id = ia
    alarm_list[i].bin = bin
    bin += 1
ENDFOR

希望这有助于指导。