“结构”的版本间差异
跳到导航
跳到搜索
(以“==结构(数组)增加一个TAG== *结构很容易增加一个tag,比如 A= {tag1:0.,tag2:'Name'} B=create_struct(A,'tag3',1L) 但是如果A是结构数...”为内容创建页面) |
无编辑摘要 |
||
第22行: | 第22行: | ||
help, ref_str, /str |
help, ref_str, /str |
||
:sdssidl中的add_tags程序 |
|||
⚫ | |||
tagnames=['ra', 'dec', 'image', 'name'] |
|||
values =['0d', '0d', 'intarr(1000, 1000)', "'NGC3035'"] |
|||
add_tags, oldstruct, tagnames, values |
|||
⚫ | |||
IDL> struct = {a: 0., b: 'blah'} |
IDL> struct = {a: 0., b: 'blah'} |
||
IDL> a=replicate(struct,2) |
IDL> a=replicate(struct,2) |
2013年12月19日 (四) 07:37的版本
结构(数组)增加一个TAG
- 结构很容易增加一个tag,比如
A= {tag1:0.,tag2:'Name'} B=create_struct(A,'tag3',1L)
但是如果A是结构数组了,就不能再这样操作。
结果数组经常被用来读入数据文件,如果该数据文件加上一列数据,如何较方便的操作。
- 一种方法如下:
A= {tag1:0.,tag2:'Name'} B= {tag1:1.,tag2:'Name2',tag3:10L} A2= replicate(A,10) B2 = replicate(B,10) struct_assign,A,B ;把A的数值付给B print,B ;可以看到B的前两列已经变成A的数值,但B的第三列被充0,所以这时候可以再给B.tag3赋值。
- 还有一种方法,但没上面那么直观
str={a: 0l, b: } str_arr=REPLICATE(str,10) ref_str = reform_struct(str_arr, /tag_array, 10) ref_str = create_struct(ref_str, 'c' ,make_array(10)) help, ref_str, /str
- sdssidl中的add_tags程序
tagnames=['ra', 'dec', 'image', 'name'] values =['0d', '0d', 'intarr(1000, 1000)', "'NGC3035'"] add_tags, oldstruct, tagnames, values
IDL> struct = {a: 0., b: 'blah'} IDL> a=replicate(struct,2) IDL> c=jjadd_tag(a,'new',0b)