我想在IDL中創建一個結構並從我的ASCII文件中輸入信息。問題是我有幾個ASCII文件,總是列數和行數不同。例如,我有ASCII文件「data.dat」,並有50行和2040列。我知道,我們可以定義數據結構(如果我們假設我只有5列):在IDL中創建一個結構
datastruct = { col1:0L, col2:0.0, col3:0.0, col4:0.0, col5:0.0}
我可以閱讀我的文件,然後複製結構:
file = 'data.dat'
nrows = file_line(file) ; to estimate the number of rows
data = replicate(datastruct, nrows)
openr, lun, file, /GET_LUN
readF, lun, data
free_lun, lun
我可以這樣做:print, data.col1
或print, data.col2
等等......但這會給我只有前5列。我怎樣才能做到這一點,但對於2040列,以及當我們事先不知道文件中的列數時。
真實的數據文件包含在不同的日子裏觀察到的幾顆恆星的通量和相應的誤差。表格沒有標題。
天Flux1 ERR1 Flux2 ERR2 Flux3 ERR3 .............. Flux2040 Err2040
感謝您的幫助!
這些是什麼樣的數據?數字?混合類型?他們有頭嗎? – lbusett
是數字。真實的數據文件包含在不同日期觀察到的幾顆恆星的通量,並帶有相應的誤差。表格沒有標題。 天Flux1 Err1 Flux2 Err2 Flux3 Err3 .............. Flux2040 Err2040 –
因此,每個文件有2n + 1條記錄:一個用於日期和n每個用於流量和錯誤,對嗎? – lbusett