我正在使用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)做我想做的事情,还是有另一个对我来说更有用的命令?
答案 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)