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

Arrays 使用IDL将2个数组值输出到文本文件,arrays,output,idl,Arrays,Output,Idl,我正在使用IDL8.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

我正在使用IDL8.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()执行我想要的操作,或者是否有另一个命令对我更有用?

您可以执行以下操作:

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

您还可以使用writecol过程执行以下操作:


还有一个建议是在所有打开的调用中使用get_lun关键字:最好让IDL管理逻辑单元号,而不是自己管理。()

谢谢-这种方法非常有效。我发现的另一个选择是下载'niceprint.pro'和'niceprintf.pro'程序(免费)。一旦你有了数组,只需打开一个文本文件来写入
openw,1,'arrays.txt'
,然后
niceprintf,1,x,y
将在arrays.txt中并排打印x和y数组。然后关闭文本文件
close,1
-如果不使用close命令,我发现有时候事情会变得一团糟