Lire un fichier texte sur matlab
Fermé
dragonbleu82dl
Messages postés
4
Date d'inscription
samedi 19 août 2006
Statut
Membre
Dernière intervention
2 février 2012
-
19 août 2006 à 00:29
youva - 16 avril 2018 à 18:21
youva - 16 avril 2018 à 18:21
A voir également:
- Lire un fichier texte sur matlab
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire fichier epub - Guide
- Fichier rar - Guide
- Lire fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
6 réponses
creativo
Messages postés
1
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
22 septembre 2006
7
22 sept. 2006 à 12:03
22 sept. 2006 à 12:03
Bonjour,
Voici une petite fonction pour lire ton fichier brut :
function WaveFrms = ReadWaveFormeFile( FileName )
Tampon=[];
wf=0;
pfin = fopen( FileName );
if pfin > 0
while ~feof(pfin)
Ligne = fgetl(pfin);
if strcmp(Ligne,'START DATA')
wf= wf+1;
Ligne = fgetl(pfin); % Sauter la ligne vide
Ligne = fgetl(pfin); % Lire la premiere ligne
while ~strcmp(Ligne,'END DATA')
Ligne = strrep(Ligne,',','.');
Tampon=vertcat(Tampon,str2num(Ligne));
Ligne = fgetl(pfin);
end
WaveFrms{wf} = Tampon; % Sauvegarder la matrice
Tampon=[]; % Reinitialiser le tampon
end
end
fclose(pfin);
end
Utilisation :
R=ReadWaveFormeFile('mat1.txt')
Acces aux matrice :
R{1}
ans
0 -0.3973
0 1.7123
0.0010 0.9708
0.0020 2.4869
0.0030 0.2234
R{n} si plus de matrice.
J'espères avoir répondu à ton attente
Bon courage
Creativo
NB : Désoler pour la mise en forme pas de concervation de la tabulation lors du copier coller
Voici une petite fonction pour lire ton fichier brut :
function WaveFrms = ReadWaveFormeFile( FileName )
Tampon=[];
wf=0;
pfin = fopen( FileName );
if pfin > 0
while ~feof(pfin)
Ligne = fgetl(pfin);
if strcmp(Ligne,'START DATA')
wf= wf+1;
Ligne = fgetl(pfin); % Sauter la ligne vide
Ligne = fgetl(pfin); % Lire la premiere ligne
while ~strcmp(Ligne,'END DATA')
Ligne = strrep(Ligne,',','.');
Tampon=vertcat(Tampon,str2num(Ligne));
Ligne = fgetl(pfin);
end
WaveFrms{wf} = Tampon; % Sauvegarder la matrice
Tampon=[]; % Reinitialiser le tampon
end
end
fclose(pfin);
end
Utilisation :
R=ReadWaveFormeFile('mat1.txt')
Acces aux matrice :
R{1}
ans
0 -0.3973
0.0010 -0.4428
0.0020 -0.4678
0.0030 -0.3241
R{2}
ans
0 1.7123
0.0010 0.9708
0.0020 2.4869
0.0030 0.2234
R{n} si plus de matrice.
J'espères avoir répondu à ton attente
Bon courage
Creativo
NB : Désoler pour la mise en forme pas de concervation de la tabulation lors du copier coller
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
21 août 2006 à 08:36
21 août 2006 à 08:36
salut.
Pas clair ton explication.
essai de remplacer les ',' par des '.'
et de refaire un "load"
Pas clair ton explication.
essai de remplacer les ',' par des '.'
et de refaire un "load"
Merci j'ai remplacé les ',' par des '.' mais il ne me donne toujours pas les chiffres apres la virgule
dragonbleu82dl
Messages postés
4
Date d'inscription
samedi 19 août 2006
Statut
Membre
Dernière intervention
2 février 2012
22 août 2006 à 20:18
22 août 2006 à 20:18
Merci j'ai remplacé les ',' par des '.' mais il ne me donne toujours pas les chiffres apres la virgule
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 août 2006 à 09:41
24 août 2006 à 09:41
Je ne sais pas trop...
tape "1.001E+3" dans matlab pour voir si il te prend bien les virgules en compte.
sinon, j'ai une autre technique pour charger les matrices.
tu met A=[ au début, et ]; à la fin.
En plus, un load avec deux matrices distinct, dans un même fichier, et sans texte, je ne suis pas sur que ça soit possible.
Ensuite, est tu sur que ce n'es pas un problème d'affichage des nombre.
genre, si pour 20001 il t'écris 2e4, essai de lui faire afficher:
(20001-20000)
A+
tape "1.001E+3" dans matlab pour voir si il te prend bien les virgules en compte.
sinon, j'ai une autre technique pour charger les matrices.
tu met A=[ au début, et ]; à la fin.
En plus, un load avec deux matrices distinct, dans un même fichier, et sans texte, je ne suis pas sur que ça soit possible.
Ensuite, est tu sur que ce n'es pas un problème d'affichage des nombre.
genre, si pour 20001 il t'écris 2e4, essai de lui faire afficher:
(20001-20000)
A+
Muammer
Messages postés
1
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
23 avril 2009
23 avril 2009 à 17:58
23 avril 2009 à 17:58
oue c bon merci. C t un probleme de caractere d'espace présent dans le programme. donc il ne pouvai pa detecter la condition de comparaison pour rentrer dans la boucle if. Merci pour tout c gentil
16 avril 2009 à 22:58
Merci pour ce code, il peut m'être utile aussi mais des que j'appelle ta fonction il me reporte une erreur
Error in ==> Lire at 3
Tampon=[];
Peux-tu m'aider?
Merci.
22 avril 2009 à 17:24
je suis dans le mem ca que toi, peut tu me dir si tu a trouver une solution pour ce probleme
merci
22 avril 2009 à 17:49
Dans mon cas:
%% Ouverture des fichiers
FichierOutput = fopen('Output.txt','w'); FichierInput = fopen('Input.txt','r');
%% Tant qu'on est pas a la fin du fichier
Ligne = fgetl(FichierInput);
while ~feof(FichierInput)
if strcmp(Ligne,'Datum1')
%Lecture du datum1
Tampon=[];
while ~strcmp(Ligne,'Datum2') Ligne = fgetl(FichierInput); Tampon=vertcat(Tampon,str2num(Ligne));end
datum1 = Tampon;
%Lecture du datum2
Tampon=[];
while ~strcmp(Ligne,'Datum1') Ligne = fgetl(FichierInput); Tampon=vertcat(Tampon,str2num(Ligne));end
datum2 = Tampon;
% Appel la fonction getParameters avec Scale=1
[tp,ac,tr] = getParameters(datum2,datum1,1);
% Metres en Millimetres
Parametres(1)=tp(1)*1000; Parametres(2)=tp(2)*1000; Parametres(3)=tp(3)*1000;
% Rad en degrés
Parametres(4)=tp(4)/pi*180; Parametres(5)=tp(5)/pi*180; Parametres(6)=tp(6)/pi*180;
% Ecrire les paramtres dans fichier
fprintf(FichierOutput,'%d\t %d\t %d\t %d\t %d\t %d\t %d\n',Parametres);%Parametres
end
end
%% Fermeture des fichiers
fclose(FichierInput); fclose(FichierOutput);
22 avril 2009 à 20:34
je v essayer ça demain au boulot,
++
23 avril 2009 à 09:11
j'ai un probleme pour ton prog. il ne copie rien dans Output. De plus je ne vois ce que c Datum1 et 2 ça se situe ou dans ton texte? ou si tu peut me passer le fichier à copier? Merki