Bonjour,
j'essaye de tracer certaines courbes entre elles suivant leurs nom (pas besoin de tout comprendre): en gros je 'creer' le nom du fichier à chaque itération de boucle, je l'ouvre ensuite et le plot dans une figure suivant son nom défini avec i et j).
Voici le programme :
Sans comprendre le pourquoi du comment de ce programme, le problème est au niveau des conditions IF: dès la première série de boucle i et j il me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 clear all close all couleur = hsv(10) ; serie = [42:81] ; pas_serie = 10 ; NbStack = [0:11] ; c1 = 0 ; c2 = 0 ; for i = serie for j = NbStack if j<10 fichier = [num2str(i),'_','00',num2str(j),'.sac'] ; elseif j >= 10 fichier = [num2str(i),'_','0',num2str(j),'.sac'] ; end i j if j==0 && (i <= serie(1)+pas_serie-1) num1 = fichier c1 = c1 + 1 ; figure(1) data1 = readsac(fichier); data1 = data1.trace ; hold on plot(data1,'color',couleur(c1,:)) ; title('42 à 51 - V1 (10 stacks)') end if j==0 && (serie(1)+pas_serie <= i <= serie(1)+2*pas_serie-1) num2 = fichier c2 = c2 + 1 ; figure(2) data2 = readsac(fichier); data2 = data2.trace ; hold on plot(data2,'color',couleur(c2,:)) ; title('52 à 61 - V1 (10 stacks)') end end end
on remarque donc ici qu'avec j=0 et i=42, il rentre dans les DEUX conditions (que l'on voit grâce à l'affichage de num1 et num2) alors que la première stipule bien IF j=0 et i<=51 (ici ok pas de pb, ça respecte les conditions) mais la deuxième stipule IF j=0 (toujours ok) mais aussi i compris entre 52 et 61 (Donc pas OK puisque i=42).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 i = 42 j = 0 num1 = 42_000.sac num2 = 42_000.sac
Comprends pas...
Merci d'avance
EDIT : merde je crois que c'est juste un pb d'écriture de IF (on peut pas encadrer une conditionnelle...) je vérifie.. Désolé
Partager