Idl中数组match

来自Shiyin's note
Shen讨论 | 贡献2023年7月17日 (一) 13:12的版本 (创建页面,内容为“ ==一维数组的match== astro_lib中的match和match2 *match,(数组中不能有重复) CALLING SEQUENCE: match, a, b, suba, subb, [ COUNT =, /SORT, EPSIL…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

一维数组的match

astro_lib中的match和match2

  • match,(数组中不能有重复)

CALLING SEQUENCE:

match, a, b, suba, subb, [ COUNT =, /SORT, EPSILON =  ]

超大整数的match,比如SDSS的objID会出问题

  • match2可以用在某一样本是另外一个样本的子样本,这样可以完全匹配
match2,a,b,suba,subb

如果a完全是b的子集,那么b[suba]=a

该程序可用于找出子样本的补集

a=[3,2,1]
b=indgen(5)
match2,a,b,suba,subb
print,b[where(subb eq -1)]

多维数据的match

matchnd

天球坐标的match

spherematch,Ra1,Dec1,Ra2,Dec2,matchlength,ID1,ID2,dis
注意matchlength的单位是度
我自己根据spherematch写了一个spherematch_kth,可以自动搜索在某个距离范围内,第kth个match [1]
idlutils里面有djs_ANGLE_NMATCH 和djs_ANGLE_MATCH程序,功能类似。
  • sdssidl中有一个CLOSE_MATCH_RADEC