/ / Ecrire des données en colonnes dans un fichier (IDL) - idl-programmation-language

Écrire des données dans des colonnes dans un fichier (IDL) - idl-programming-language

J'essaye d'écrire des données dans des colonnes dans IDL.

Disons que je calcule "k" et "k ** 2", alors j'obtiendrais:

1 1

2 4

3 9

. .

etc.

Si j'écris ceci dans un fichier, cela ressemble à ceci:

1 1 2 4 3 9 . .

Mon code correspondant ressemble à ceci:

pro programname

openw, 1, "filename"
.
. calculating some values
.

printf, 1, value1, value2, value3
close,1
end

meilleures salutations

Réponses:

0 pour la réponse № 1

Vous devriez probablement lire la documentation IDL sur la sortie formatée, pour obtenir tous les détails.

Je ne comprends pas votre "valeur1, valeur2, valeur3" dans votre printf. Si je devais faire cela, j'aurais deux variables "k" et "k2". Ensuite, j'imprimerais en utilisant une transposition ou une boucle 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

Au fait, si vous allez utiliser le débordement de pile, vous devriez commencer à «accepter» les bonnes réponses.


0 pour la réponse № 2

Il semble que vous ayez deux vecteurs. Un avec des valeurs uniques et un avec des valeurs carrées. Voici ce que vous pouvez faire:

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

fin