【问题标题】:Printing to file in IDL在 IDL 中打印到文件
【发布时间】:2014-03-19 19:54:56
【问题描述】:

我想打印到 IDL 中的文件。文件数量超过 100 个,我只能生成 100 个文本文件。

我的代码是:

for i = 0,575 do begin
fname='file_'+string(i,format="(i03)")+'.txt'
openw,21+i,fname,/append
for j = 1,nchan(0)-1 do begin
printf,21+i,chvel(0,j)/1.e5,s1(j,i),FORMAT='(F9.4,2X,F9.4)'
endfor
close,21+i
endfor

【问题讨论】:

    标签: idl-programming-language


    【解决方案1】:

    简单的解决方案 - 使用 free_lun。任何时候只能使用 100 个逻辑单元号,free_lun 让您可以重复使用那些可用的 LUN。

    for i = 0,575 do begin
    fname='file_'+string(i,format="(i03)")+'.txt'
    openw,lun,fname,/get_lun,/append
    for j = 1,nchan(0)-1 do begin
    printf,lun,chvel(0,j)/1.e5,s1(j,i),FORMAT='(F9.4,2X,F9.4)'
    endfor
    close,lun
    free_lun,lun
    endfor
    

    【讨论】:

    • 这里的另一个关键是/get_lunopenw命令中的使用。
    • 好吧,你应该使用 [] 而不是 () 来索引数组。在 IDL 的更高版本中,这可能是一个问题,除非您在例程中指定编译选项。
    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 2023-02-24
    • 1970-01-01
    • 2014-02-27
    • 2012-01-27
    相关资源
    最近更新 更多