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あなたの助けを
ありがとう!数値行列は、あなたが適切にASCIIファイルをフォーマットしているので、あなたは簡単な解決策だけで使用することです、構造よりもinstradためのOKであれば
どのような種類のデータですか?数値?混合型ですか?彼らはヘッダーを持っていますか? – lbusett
はい数値です。実際のデータファイルには、異なる日に観測されたいくつかの星のフラックスとそれぞれのエラーが含まれています。テーブルにはヘッダーがありません。 日数Flux1 Err1 Flux2 Err2 Flux3 Err3 .............. Flux2040 Err2040 –
各ファイルには2n + 1個のレコードがあります。つまり、日付とフラックスとエラーはそれぞれn個です。 – lbusett