Inscription / Connexion Nouveau Sujet
Niveau calculatrices
Partager :

comment lire des nombres dans un fichier avec Mathematica

Posté par rud-x (invité) 21-05-05 à 12:17

Bonjour à tous,

je dois écrire un programme en Mathematica.
voici ce que fait ce programme:

il ouvre un fichier texte. ce fichier contient des données sous forme de chaines de caractères.

il faut chercher une certaine ligne du fichier
par ex la ligne commençant par  "cellule_a"
(ça j'arrive à le faire en utilisant la commande FindList)

cette ligne est de la forme:  " cellule_a   4.2521(2) "
et il faut que j'extraie le nombre  4.2521 de cette ligne pour pouvoir ensuite le réutiliser dans des calculs...

et je n'y parviens pas: je ne sais pas comment utiliser les pattern ou autre chose qui me permettrais de le faire....
un grand merci à qui pourra m'aider: je désespère, surtout que je ne dispose pas de beaucoup de temps...
Rudy
mon e-mail:     ***@caramail.com

Posté par
franz
re : comment lire des nombres dans un fichier avec Mathematica 21-05-05 à 14:41

Bonjour,

j'ai créé un fichier "d:\toto.txt" contenant :
cellule_a   4.2521(2)
cellule_a   6.2521(2)
toto
cellule_a   3.2521(2)
cellule_a   7.2521(2)
cellule_a   1.2521(2)

[/i]

Le fichier Mathematica permettant de lire les valeurs est le suivant :

In[1]:= SetDirectory["d:"]
Out[1]= "D:\\"


In[2]:=  a=FindList["toto.txt","cellule_a"]
Out[2]=  {"cellule_a   4.2521(2)","cellule_a   6.2521(2)","cellule_a   3.2521(2)","cellule_a   7.2521(2)","cellule_a   1.2521(2)"}


In[3]:= resu={};

In[4]:=    For[i=1,i<=Length[a],i++,
                   b=StringToStream[a[[i]]];
                   SetStreamPosition[b,StringLength["cellule_a"]];
                   resu = Append[resu,Read[b ,Number]]
              ];

In[5]:= resu
Out[5]= {4.2521,6.2521,3.2521,7.2521,1.2521}



J'expère que ça t'aidera.
Bon courage.[/i]

Posté par rud-x (invité)si j ai bien compris 21-05-05 à 18:31

l'algorithme que tu a écris,
je crois que tu a fait une erreur en le recopiant:
tu aurais dû écrire:

b=StringToStream[a[[ i]]]

et non pas:

b=StringToStream[a[]]

c'est bien ça?

en tout cas merci mille fois car ça marche!!!
Rudy

Posté par
franz
re : comment lire des nombres dans un fichier avec Mathematica 22-05-05 à 15:35

J'ai bien mis a[[ i]] mis il a dû interpréter comme une mise en italique.
Je suis ravi que ça te sois utile.
A bientôt.

Répondre à ce sujet

Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster :

Connexion / Inscription Poster un nouveau sujet
Une question ?
Besoin d'aide ?
(Gratuit)
Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.


Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !