Bonjour,
J'ai un soucis , j'ai plusieurs fichiers data et je vaudrai faire une boucle sur matlab afin de les lire successivement, je ne sait pas comment procéder.
Merci .
-----

Bonjour,
J'ai un soucis , j'ai plusieurs fichiers data et je vaudrai faire une boucle sur matlab afin de les lire successivement, je ne sait pas comment procéder.
Merci .
Bonjour,
Si vos fichiers sont nommés de manière régulière (par exemple xxxxx_0.aaa, xxxxx_1.aaa, xxxxx_2.aaa, etc.) vous pouvez générer une liste des noms de fichier à lire (en vous servant notamment de la fonction 'num2str'), puis faire une boucle sur cette liste.
Si ce n'est pas le cas, la fonction 'ls' renvoie la liste des noms de fichiers dans le dossier courant. Il suffit alors d'extraire de cette liste les noms voulus et de faire une boucle sur la partie extraite.
Sous matlab c'est plutôt la fonction dir. Par exemple pour lister les fichiers en .m on fera quelque chose comme
Code:liste = dir(path + '*.m') for i = 1:size(liste, 2) dosomethingwith(liste(i))
Bonjour;
Merci pour votre réponse; j'ai esseyer avec dir et j'ai pu avoir un certain résultat qui m'a l'ai incohérent avec mes donnes sur plusieurs fichiers datas.txt qui se caractérise par 3 colomnes t(temps) ,x,y , et j'aimerai utiliser ''scatter'' pour afficher pour chaque t le point x,y qui lui correspond, mais pour l'instant je n'arrive pas.
Voici mon code;
clear all;
close all;
ff=fopen('12');
a=fscanf(ff,'%f',[3 inf]);
a=a.';
t=a(:,1);
x=a(:,2);
y=a(:,3);
%fermeture du fichier texte
fclose(ff);
n=length(x);
for i=0:t
plot(x(i),y(i),'*');
axis([2 2.4 3 3.4]);
grid on;
hold on;
clear all;
end
j'ai mis un clear all dans la boucle pour éviter d'avoir tout les points en même temps en espérant avoir une animation .gif, mais j'ai toujours ce même résultat.
sur la photo on ne voit que x, y je ne sais pas comment correspondre le temps pour chaque (x,y).
Merci d'avance.
Le code doit être indenté et posté entre balises [Code]...[/Code].
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
"hold on" signifie que tu demandes au prochain point d'être sur le même graph que le graph courant.
PS: c'est probablement ce qui le protège du clear all, ou alors l'indentation est problématique et [CODE]je ne peux pas le savoir[/CODE].
PPS: JPL, merci pour le truc![]()
Pour obtenir un affichage "animé", il suffit d'enlever le "clear all" et le "hold on" de votre code. Par contre, vous ne verrez pas grand chose (défilement trop rapide) si vous ne faites pas une pause à chaque appel de la boucle "for". Pour cela, il y a la commande "pause".
En passant, faites attention au fait que les vecteurs démarrent à l'index 1 (et non 0 comme le fait votre code) dans Matlab.
j'ai enleve le hold on et le clear on mais j'ai une erreur sur scatter(x(t),y(t)).
j'ai enlevé le hold on et le clear on mais j'ai une erreur sur scatter,
.Code:scatter(x(t),y(t))
et quand j’enlève la dependence en t :
;Code:scatter(x,y)
j'ai toujours le meme nuage de point sans l'animation.
finalement ça marche bien,
effectivement y'avais un problème dans la variable t
en remplaçant:
j'ai pu avoir l'animation en rajoutant unCode:scatter(x(i,1),y(i,1));Code:hold off
