我想从文件中读取一些RA和Dec值,只找到唯一的值。然后,这将打印到一个新文件,其中只包含与每个RA和Dec相关的唯一信息。
该文件包含 starId,RA,Dec,Mag,Temp,....
0001,19:20:21.22,37:40:43.5,14.6,5432,......
readcol,'/filepath/filename.txt',starId,RA,DEC,Mag, Temp, format='L,A,A,D,D',/silent
idx = uniq(starId)
当我尝试将唯一列表写入文件时
openw,2,'/filepath/uniqlist.txt'
printf,2,[transpose([starId[idx]), transpose(RA[idx]), transpose(Dec[idx])]
close,2
我只得到RA和Dec的第一个值
任何人都可以提供帮助,我可以使用哪些格式说明符来读取或写入正确的信息
答案 0 :(得分:0)
我没有找到解决方案,但我确实找到了解决方法
事实证明,printf语句中的数组括号'[]'似乎会导致问题。
解决方法是使用循环打印以旧式方式提交文件
idx = uniq(starId)
openw,2,'/filepath/uniqlist.txt'
for i = 0, n_elements(idx)-1 do begin
printf,2, starId[idx[i]],' ',RA[idx[i]],' ',DEC[idx[i]],
endfor
close, 2
不理想,但确实有效。
如果有人有,我仍然会对更好的解决方案感兴趣。
答案 1 :(得分:0)
这样的事情怎么样?
openw, lun, output_filename, /get_lun
printf, lun, transpose([[starId[idx]], [RA[idx]], [dec[idx]]])
free_lun, lun