我正在尝试将一些数据写入IDL中的列。
让我们说我正在计算" k"和" k ** 2",然后我会得到:
1 1
2 4
3 9
。
等等。
如果我将其写入文件,它看起来像这样:
1 1 2 4 3 9。
我的相应代码如下所示:
pro programname
openw, 1, "filename"
.
. calculating some values
.
printf, 1, value1, value2, value3
close,1
end
最好的问候
答案 0 :(得分:0)
您应该阅读格式化输出的IDL文档,以获取所有详细信息。
我不理解你的printf中的“value1,value2,value3”。如果我要这样做,我会有两个变量“k”和“k2”。然后我会使用转置或for循环打印:
IDL> k = [1:10]
IDL> k2 = k^2
IDL> print, transpose([[k], [k2]])
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100
IDL> for i=0,n_elements(k)-1 do print, k[i], k2[i]
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100
顺便说一下,如果你打算使用堆栈溢出,你应该开始“接受”正确的答案。
答案 1 :(得分:0)
听起来你有两个向量。一个具有单个值,一个具有平方值。这是你能做的:
pro programname
openw, f, "filename", /GET_LUN
.
. calculating some values for k
.
k2 = k^2 ;<---This is where you square your original array.
;Merge the vectors into a single array. Many ways to do this.
k = strtrim(k,2) ;<----------------------------Convert to string format
k2 = strtrim(k2,2) ;<--------------------------Convert to string format
merge = strjoin(transpose([[k],[k2]]),' ') ;<--Merge the arrays
;Now output your array to file the way you want to
for i=0L, n_elements(k)-1 do printf, f, merge[i]
;Close the file and free the logical file unit
free_lun, f
端