使用IDL将2个数组值输出到文本文件

时间:2014-08-06 18:41:04

标签: arrays output idl

我正在使用IDL 8.3。我有两个名为X和Y的数组。它们每个都包含1001个值。我想以这种格式将它们的值输出到文本文件:

x1 y1
x2 y2
x3 y3
.....
x1001 y1001

我能够将所有X值打印到文本文件中:

openw, 1, 'outFile.txt'
printf, 1, X

然后我可以在它们之后打印所有Y值(但这不是我想要的格式) - 文本文件看起来像这样:

x1 x2 x3 x4
x5 x6 .. x1001
y1 y2 y3 y4
y5 y6 .. y1001

但是,由于某些原因,我无法让printf格式化我想要的方式(它不会让我只说printf, 1, x, y)。有没有办法用printf(http://www.exelisvis.com/docs/PRINT.html)做我想做的事情,还是有另一个对我来说更有用的命令?

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

IDL> x = findgen(10)
IDL> y = findgen(10) * 2
IDL> print, transpose([[x], [y]]), format='(2F)'
      0.0000000      0.0000000
      1.0000000      2.0000000
      2.0000000      4.0000000
      3.0000000      6.0000000
      4.0000000      8.0000000
      5.0000000     10.0000000
      6.0000000     12.0000000
      7.0000000     14.0000000
      8.0000000     16.0000000
      9.0000000     18.0000000

答案 1 :(得分:0)

您也可以使用writecol程序:http://www.staff.science.uu.nl/~rutte101/rridl/misclib/writecol.pro

还有一个建议是将get_lun关键字与所有打开的调用一起使用:最好让IDL管理逻辑单元号,而不是自己动手。 (http://www.exelisvis.com/docs/OPEN.html#O_828691053_889739