Rechercher : dans
Par :

Lecture de fichier texte avec matlab

Dernière réponse le 11 aoû 2009 à 19:04:19 sylvie, le 23 jui 2004 à 14:24:12 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « lecture de fichier texte avec matlab » dans :
MySQL - Chargement d'un fichier texte dans une table VoirPour charger une fichier texte défini comme suit : $ tail /home/user1/test.txt 'nom1',1,9 'nom2',2,3 'nom3',3,54 'nom4',4,2 'nom5',5,9 Dans une table définie comme suit : CREATE TABLE chargertest ( ...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Fichier NFO VoirFormat NFO Un fichier NFO est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Un tel fichier accompagne généralement des fichiers en téléchargement pour apporter des informations additionnelles sur...

1

_julien_, le 23 jui 2004 à 15:11:19

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

Répondre à _julien_

2

_julien_, le 23 jui 2004 à 15:13:47

Desole les tabulations passent pas sur ce forum :(

-- 
julien barbier

Répondre à _julien_

3

_julien_, le 23 jui 2004 à 15:25:43

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

Répondre à _julien_

4

sylvie, le 23 jui 2004 à 15:39:09

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...

Répondre à sylvie

5

_julien_, le 23 jui 2004 à 16:12:48

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

Répondre à _julien_

6

nabennani, le 12 jan 2005 à 13:50:13

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

Répondre à nabennani

7

capi, le 16 nov 2007 à 15:22:19

J'ai le même problème que toi,pourrais tu m'envoyer ton programme.

Répondre à capi

8

amel, le 13 avr 2008 à 14:59:13

Lecture de fichier texte avec matlab , cette texte chiffrer par mhéthode de chiffrement de laster s.hill(1929)

Répondre à amel

9

Wided, le 20 mar 2009 à 17:29:35
  • +1

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

Répondre à Wided

10

Sacabouffe, le 21 mar 2009 à 02:15:10

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 Gare au goriiiiiiiiiille !

Répondre à Sacabouffe

12

 hello1412, le 11 aoû 2009 à 19:04:19

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!!

Répondre à hello1412
Collection CommentÇaMarche.net