gpt4 book ai didi

idl-programming-language - IDL : Accessing a structure tag with a variable name

转载 作者:行者123 更新时间:2023-12-01 10:36:07 24 4
gpt4 key购买 nike

在之前的函数中,我创建并返回了一个哈希值。执行此操作后,它将哈希作为结构返回,我将其用作此以下函数的输入。

myStruct 的每个标签都是一个结构,每个都有一个名称和数据类型标签。

我正在尝试遍历每个标签以查找特定数据类型出现在哪个“名称”处。

pro plotter, myStruct

numtags = n_tags(myStruct)
names = tag_names(myStruct)
for varID = 0, numtags do begin
if ( strcmp( myStruct.(names[varID]).datatype, 'Temperature, Head 1')) then print, varID

endfor

end

尝试运行后出现以下错误:“类型转换错误:无法将给定的 STRING 转换为 Long。”

是什么导致了这个错误?我可以使用变量名访问标签吗?

最佳答案

你可以这样做,但不是你现在的样子。我认为这是问题所在:

myStruct.(names[varID])

names[varID]是一个字符串。

我假设 myStruct看起来像这样:
myStruct = { tag1: {data:0L, datatype:'Some type'}, tag2: {data:1L, datatype:'Temperature, Head 1'}}

通常,您可以通过标签名称或索引访问结构。所以,
myStruct.(0)
myStruct.tag1

都将为您提供结构的第一个标签中的第一个值(您可以根据需要为其他标签增加索引)。在这种情况下,这些将产生“存储”在 tag1 中的结构。

如果是这样,那么这应该有效:
pro plotter, myStruct

numtags = n_tags(myStruct)
names = tag_names(myStruct)
for varID = 0, numtags-1 do begin
if ( strcmp( myStruct.(names[varID]).datatype, 'Temperature, Head 1')) then print, names[varID]
endfor

end

关于idl-programming-language - IDL : Accessing a structure tag with a variable name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35186898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com