2014-03-26 81 views
0

我想從文件中讀取一些RA和Dec值以僅查找唯一的RA和Dec值。這將被打印到一個新的文件,只有每個RA日和12月相關的獨特信息IDL讀取RA和Dec格式

該文件包含 starId,RA,月,MAG,溫度,....

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

我沒有找到一個解決方案,但我沒有找到周圍

工作原來它是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 

不理想的老式方法,但它確實工作。

如果有人有一個更好的解決方案,我仍然有興趣。

0

這樣的事情呢?

openw, lun, output_filename, /get_lun 
printf, lun, transpose([[starId[idx]], [RA[idx]], [dec[idx]]]) 
free_lun, lun 
+0

我之前嘗試過,我張貼。它看起來像外面的數組括號中的一些方法,導致':'字符被解釋爲格式字符,並終止該字符串的其餘部分的處理。所以在上面的例子中我得到了0001,19,37。當你一次寫/打印一個時,它似乎很好。 – theotheraussie