Les Allergies
Alimentaires
Posez votre question Signaler

Lecture de fichier texte avec matlab [Résolu]

sylvie - Dernière réponse le 29 mai 2011 à 16:43
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
Lire la suite 

Lecture de fichier texte avec matlab »

13 réponses
Réponse
+6
moins plus
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
hello1412 - 11 août 2009 à 19:04
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!!
Ajouter un commentaire
Réponse
+0
moins plus
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);

-- 
julien barbier
Ajouter un commentaire
Réponse
+0
moins plus
desole les tabulations passent pas sur ce forum :(

-- 
julien barbier
Ajouter un commentaire
Réponse
+0
moins plus
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.

-- 
julien barbier
sylvie - 23 juil. 2004 à 15:39
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_- 23 juil. 2004 à 16:12
lol, a 3h30 c'est deja le we ?
Et ben ca va, il est pas si mechant que ca ton maitre de stage ;)

-- 
julien barbier
Ajouter un commentaire
Réponse
+0
moins plus
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- 29 mai 2011 à 16:43
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!
Ajouter un commentaire
Réponse
+0
moins plus
j'ai le même problème que toi,pourrais tu m'envoyer ton programme.
Ajouter un commentaire
Réponse
+0
moins plus
lecture de fichier texte avec matlab , cette texte chiffrer par mhéthode de chiffrement de laster s.hill(1929)
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « lecture de fichier texte avec matlab » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?