Lecture de fichier texte avec matlab [Résolu/Fermé]

- - Dernière réponse :  douroc - 3 juil. 2015 à 13:54
Bonjour à tous,
J'ai un problème avec la lecture d'un fichier texte avec matlab : je voudrais juste lire certaines lignes commencant toutes par $GPGGA, et dans ces lignes juste le deuxième chiffre (les chiffres sont séparés par des virgules). Voici un extrait du fichier texte pour illustrer ce charabias (les chiffres à lire et à mettre dans un vecteur sont en italique):

03420; 01549; 03857; 15273; 02558
$GPGGA,114823.00,4935.927292,N,00340.262535,E,2,04,1.6,71. 47,M,
03820; 01576; 04173; 15273; 02559
05246; 00000; 04700; 15263; 02571
05504; 00000; 04593; 15271; 02572
$GPGGA,114824.00,4935.927168,N,00340.262229,E,2,04,1.6,71. 54,M,
05222; 00000; 04700; 15267; 02573


Comment faire??? :??:
Je bloque dessus depuis hier et mon maitre de stage s'impatiente!!
Merci d'avance pour votre aide
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
9584
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1430
18
Merci
Salut

Le sujet date d'il y a 5 ans et le dernier message d'un politesse exemplaire (à l'image de son prédécesseur de 2007) d'il y a un an...
fopen('data_file.txt','r');
fgetl(fid);
C=textscan(fid,'%*s %s %s %*s %*s %*s');
fclose(fid);
latitude=strvcat(C{1});
longitude=strvcat(C{2});
clear C;
latitude(:,1)='';
longitude(:,1)='';
latitude=str2num(latitude);
longitude=str2num(longititude);
Bonne nuit

Dire « Merci » 18

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60146 internautes nous ont dit merci ce mois-ci

Bonjour a tous..j ai tres leger soucis..depuis 2 mois maintenant avec un programme..

je vous explique..

j ai un fichier de données.fzp que j extrais a laide de winrar afin d'obtenir un fichier de données.txt...
jusque la rien d'exeptionnel..

le fichier a la forme suivante:

07:45:00.0; 100; Car; 2835; 122; 35.90; 9.97; 2.08; 10001; 15657.3860; 23102.3252;
07:45:00.0; 100; Car; 2578; 918; 26.52; 7.37; 2.77; 10005; 15797.1265; 22998.3804;
07:45:00.0; 100; Car; 2591; 921; 16.35; 4.54; 2.76; 10005; 15796.7862; 23000.6868;
07:45:00.0; 100; Car; 2612; 1061; 22.00; 6.11; 2.06; 10005; 15798.1510; 23003.3599;
07:45:00.0; 700; Taxi; 2714; 285; 39.30; 10.92; 0.17; 10009; 15817.9022; 23136.4181;
07:45:00.0; 100; Car; 2811; 288; 41.16; 11.43; -0.00; 10009; 15821.0923; 23134.1496;
.
.
.
ce qui represente les données suivantes:

ToD; Type; VehTypeName; VehNr; DistX; v; vMS; a; Link; WorldX; WorldY;


le but du programme que j ai a ecrire est le suivant:

Tout d abord, il faut que je lise ce fichier.txt sous matlab.
ensuite, il faut que pour un vehicule donné par exemple le vehicule numero 2835, je construise une matrice constituée de deux vecteurs: l un representant le temps (TOD) et l autre representant la vitesse..

Qulequ un a til une idée de la facon de faire ca??

merci beaucoup !!!

A bientot!!
Messages postés
56
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
31 juillet 2004
17
3
Merci
Alors pour selectionner seulement les lignes qui t'interressent:

fid = fopen(filename, 'rt');
while feof(fid) == 0
tline = fgetl(fid);
matches = findstr(tline, "$GPGGA");
num = length(matches);
if num > 0
% cette ligne t'interresse
end
end
fclose(fid);

--
Nom supprimé Modération CCM
Messages postés
56
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
31 juillet 2004
17
3
Merci
Alors qd tu as ta ligne tu peux faire un strtok par exemple:

[...]
if num > 0
% cette ligne t'interresse
res = strtok(tline, ',');
end
[...]

Le troisieme elemnent de res devrait etre ton nombre
(Geographic latitude ?).
Ca fait longtemps que je n'ai pas fait de MatLab et je ne peux pas
tester car je ne l'ai plus sur mon ordi.
J'espere que ce sera bon.

Bon courage.

--
Nom supprimé Modération CCM
Merci beaucoup Julien, je testerai ça lundi (parceque la il faut pas exagerer c'est presque le week-end!). Et en effet tu as vu juste, ce sont bien des coordonnées GPS...
_julien_
Messages postés
56
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
31 juillet 2004
17 > sylvie -
lol, a 3h30 c'est deja le we ?
Et ben ca va, il est pas si mechant que ca ton maitre de stage ;)

--
Nom supprimé Modération CCM
Messages postés
56
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
31 juillet 2004
17
2
Merci
desole les tabulations passent pas sur ce forum :(

--
Nom supprimé Modération CCM
2
Merci
Bonjour,

Je traite exactement le même type de trame dans le cadre de mon projet.
Voici un aperçu du fichier txt que je dois lire et exploiter sur matlab:

H LATITUDE LONGITUDE DATE TIME ALT ;track
T N43.7793589 E006.8627429 17-MAR-09 08:35:29 01141
T N43.7793374 E006.8627429 17-MAR-09 08:36:24 01122
T N43.7793374 E006.8627429 17-MAR-09 08:40:56 01121
T N43.7791657 E006.8629575 17-MAR-09 08:41:08 01122
T N43.7792730 E006.8637300 17-MAR-09 08:41:27 01123
T N43.7794232 E006.8648887 17-MAR-09 08:41:43 01126
T N43.7796164 E006.8665409 17-MAR-09 08:41:59 01135
T N43.7797022 E006.8669486 17-MAR-09 08:42:05 01136

Je dois récupérer les latitudes et longitudes et les interpoler. Pour l'interpolation c fait mais j'arrive pas à récupérer les coordonnées dans un tableau.

J'ai testé ton code mais j'ai l'impression qu'il récupère juste les valeurs en italique :S ??????????
Est-ce que tu peux m'envoyer stp le code que tu as utilisé finalement??

Merciiiiiiiii
Messages postés
1
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
12 janvier 2005
1
1
Merci
bonjour,
j'ai lu votre message sur CCM. com, et je me suis dis que tu pe m'aider par ce que on travaille a peut pres sur la même chose.
en faite moi aussi je dois recuperer des données à partir d'un fichiers texte ( ça j'ai reussi à le faire). je dois tracer des courbes à partir d'un vecteur Y(plusieurs centaines de données) en fonction d'un vecteur X( même dimension que Y) (j'ai reussi à le faire aussi) et je ve une commande ou un programme qui me permet d'avoir le coordonné x d'un point en entrant son coordonnée Y ( ça j'ai pas reussi à le faire)
merci bcp de me l'envoyer si vous savesz le faire.
merci d'avance
marwa_ch
Messages postés
1
Date d'inscription
dimanche 29 mai 2011
Statut
Membre
Dernière intervention
29 mai 2011
-
bonjour;
s'il vous plait pouvez_vous m'envoyer ton code que tu a réussi à faire concernant le traçage des courbes et etc car j'ai un problème à résoudre et qui ressemble beaucoup à le tienne!
je te remercie beaucoup!
0
Merci
j'ai le même problème que toi,pourrais tu m'envoyer ton programme.
0
Merci
lecture de fichier texte avec matlab , cette texte chiffrer par mhéthode de chiffrement de laster s.hill(1929)
Messages postés
1
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010
0
Merci
Bonjour à tous,
SVP J'ai un problème avec la lecture d'un fichier texte avec matlab :
je voudrais lire et utiliser ce fichier dans des autres opérations de calcul
le fichier est de format .txt il contient deux colonnes :

1) DATE sous format 'dd/mm/yyyy HH:MM' exp: 31/01/1996 23:00
2) Débit Q

date Q
31/01/1996 23:00 0.059
01/02/1996 08:00 0.0547
07/02/1996 06:00 0.0547
07/02/1996 07:00 0.756
07/02/1996 08:30 0.571
07/02/1996 11:00 0.518
07/02/1996 13:00 0.73
07/02/1996 14:00 1.1
07/02/1996 14:30 2.42
07/02/1996 15:00 1.91
07/02/1996 16:00 3.24
07/02/1996 17:00 1.91
07/02/1996 19:00 0.915
07/02/1996 22:00 0.73
08/02/1996 00:00 0.677
08/02/1996 03:00 0.968


je suis débutant avec matlab et j'ai pas pu lire et introduire ces données pour les utiliser après
j'ai essayé cette commande mais sans résultat !!!! :

A=importdata('Q.txt','\t');
data=A.data;
for i=1:length(A);
date=A.data(i,:)
débit=A.data(:,1)

svp je suis bloqué dessus depuis quelques jours... :(
Merci d'avance pour votre aide
svp j'arrive pas à faire le test arch sur matlab , quelq'un peut m'expliquer svp sourtout je trouve des difficultés au niveau des résidus