/ / डेटा को एक फ़ाइल (कॉलम) में कॉलम में लिखना - आईडीएल-प्रोग्रामिंग-भाषा

फ़ाइल (आईडीएल) में कॉलम में डेटा लिखना - आईडीएल-प्रोग्रामिंग-भाषा

मैं आईडीएल में कॉलम में कुछ डेटा लिखने की कोशिश कर रहा हूं।

मान लीजिए कि मैं "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 № 1

आपको संभवतः सभी विवरण प्राप्त करने के लिए, स्वरूपित आउटपुट पर आईडीएल प्रलेखन पढ़ना चाहिए।

मैं आपके प्रिंट में आपके "value1, value2, value3" को नहीं समझ पा रहा हूं। अगर मैं ऐसा करने जा रहा था, तो मेरे पास दो चर "k" और "k2" होंगे। फिर मैं एक ट्रांसपोज़ या लूप के लिए उपयोग कर प्रिंट करूंगा। :

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

वैसे, यदि आप स्टैक ओवरफ्लो का उपयोग करने जा रहे हैं, तो आपको सही उत्तरों को "स्वीकार" शुरू करना चाहिए।


जवाब के लिए 0 № 2

ऐसा लगता है कि आपके पास दो वैक्टर हैं। एक एकल मूल्यों के साथ और एक वर्ग मूल्यों के साथ। यहाँ आप क्या कर सकते हैं:

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

समाप्त