Lecture de fichier texte et modification de valeurs
Bonjour,
débutant sur MatLab, je sollicite votre aide
j'ai besoin d'écrire un programme pour lire un fichier texte et à partir de celui ci de créer une matrice de 180 lignes sur 288 colonnes. Cette matrice correspond à des données de longitudes (colonnes) suivant les latitudes (lignes).
je dispose à la base d'un fichier texte avec des données texte qui ne m'interessent pas et des milliers de valeurs!!!!
le fichier n'est pas à la base "rectangulaire" le nombre de colonnes est différent pour chaque donnée de latitude (elles vont de -89.5 à 89.5 tous les 1°)
voilà ci joint le début du fichier en question (il n'y a pas que des zéros comme valeurs, hormis pour les latitudes, elles sont toutes positives et s'echelonnent jusqu'à 999). voici le début du fichier texte qui fait 160ko
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| Day: 1 Jan 1, 2004 EP/TOMS ARC 360 RES GEN:04.219 V8 ALECT: 10:58 AM
Longitudes: 288 bins centered on 179.375 W to 179.375 E (1.25 degree steps)
Latitudes : 180 bins centered on 89.5 S to 89.5 N (1.00 degree steps)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 lat = -89.5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 lat = -88.5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 lat = -87.5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 lat = -86.5 |
je vous remercie par avance pour la lecture du message et un grand merci à ceux qui pourront m'aider
bonne journée
je commence à avancer!!!!
j'ai réussi à éliminer les lignes de texte qui me servaient à rien
j'obtiens un fichier qui fait 2160 lignes
il faut que j'arrive à remplacer dans chaque ligne la valeur 999 par "999+ un espace"
pour eviter d'avoir des lignes de 999 interrompues et ensuite il faudra que je mette dans une ligne mes 12 premieres lignes pour creer ma matrice. je bloque completement.
je vous file le debut du programme
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| clear all;
close all;
%demander le fichier à lire
fichier = input('fichier =');
%fichier= '200401.txt'
%ouverture du fichier, lecture du fichier et selection des lignes
fid=fopen(fichier)
A=textscan(fid,'%s','delimiter','','headerlines',3)
fclose(fid);
%affichage de la cellule resultat
A{1}
%affichage du nombre de lignes de la cellule
nbligne=length(A{1})
%séparation des 999!!!!! |
si jamais quelqu'un a une idée merci
à plus
je bloque pour le remplacement de valeur!!!!
Bonjour tout le monde
j'ai réussi à trouver l'idée mais je bloque pour ecrire la suite du programme
pour remplacer mes 999 par '999+ un espace' il faut que je fasse trois étapes de remplacement
1 pour mes 999 accollés au chiffre 9 qui m'interesse je dois d'abord ecrire 9'espace'999999999.....en gros pour toutes mes suites de 9=4:3:75, le premier 9 doit etre remplacé par '9'espace''
2 meme raisonnement pour les valeurs qui m'intéressent pour X=19:10:99
la série qui commence par 19 (ou 29 ou 39...) je dois l'écrire '19'espace'999999....donc mes séries appelées A, de la forme A=X999999999...je dois l'ecrire X'espace'999999999
3 enfin derniere étape remplcé tous mes 999 par '999'espace'
bien sur 'espace' ici renvoie à un espace et non le mot
merci pour ceux qui ont une idée
bonne journée