我从一个 FITS-Table 读取数据,并获得一个包含该表的 Struct,其中每个标签代表一列。
有没有办法将数组结构重新格式化为结构数组?那么 Array 中的一个 Struct 代表一个 Row 吗?
@mgalloy 提出的一般解决方案(见下文):
function SoA2AoS, table
if (table eq !NULL) then return, !NULL
tnames = tag_names(table)
new_table = create_struct(tnames[0], (table.(0)[0]))
for t = 1L, n_tags(table) - 1L do begin
new_table = create_struct(new_table, tnames[t], (table.(t))[0])
endfor
new_table = replicate(new_table, n_elements(table.(0)))
for t = 0L, n_tags(table) - 1L do begin
new_table.(t) = table.(t)
endfor
return, new_table
end