1

私は IDL に比較的慣れていないので、次のことを達成する必要があります。

だから私は次のようなことを考えていました:

files=dialog_pickfile(/multi, filter=filter, path=path, title=title)
n_files=n_elements(files)
for i=0, n_files-1 do begin
openr, lun, /get_lun, files[i]
readf, lun, data

しかし、この時点で、たとえばファイルの名前を追跡して別の配列を作成する方法。

例えば:

arrayfile1(i,j,k)=
arrayfile2(i,j,k)=

等々。

これが明確であることを願っています、ベスト。

4

1 に答える 1

3

このようなものはどうですか?

files = dialog_pickfile(/multiple_files, filter=filter, path=path, $
                        title=title)
n_files = n_elements(files)

; check if the user cancels the dialog
if (n_files eq 1 && files[0] eq '') then n_files = 0

full_data = fltarr(nfiles, ni, nj, nk)
data = fltarr(ni, nj, nk)

for i = 0, n_files - 1 do begin
  openr, lun, /get_lun, files[i]
  readf, lun, data
  full_data[i, 0, 0, 0] = data
  free_lun, lun
endfor

大きな配列の代わりにリストまたはハッシュを使用することもできます。配列は高速ですが、連続メモリでなければならないため、データ サイズによっては問題になる可能性があります。

于 2012-06-22T16:51:32.447 に答える