Bonjour à tous,

Voilà, j'ai un petit souci, pour résumer, je suis actuellement en stage et je dois créer un programme de dimensionnement et d'optimisation pour une entreprise internationale. Voici mon problème:

Sachant que mon programme est très important au niveau taille, j'ai juste mis la partie la plus intéressante.

Voici l'erreur qui apparaît:
??? Subscript indices must either be real positive integers or logicals.

Error in ==> Prgm_22May at 196
                            vect_entrefer(N,B,lig_tole)=entrefer;
Voici une partie de mon programme:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
for lig_tole = 1:n_toles            
 
        % Calcul des dimensions de la tôle:
        	a=Specs_toles_EI(lig_tole,2);                                   
                b=Specs_toles_EI(lig_tole,3);                                  
                c=a/6;                                                         
                e=(b-(a/6));                                                 
                f=((2*a)/6);                                                   
                g=((4/6)*a);                                                    
                i=(a/1.2);                                                     
                k1=(i/10);                                                      
                k3=(b-(c/2));                                                  
 
        % Calcul des longueurs moyennes de la tôle:
                l1=((a/2)-(c/2))+(b);                                           
                l2=l1;                                                         
                l3=b;                                                         
                l4=i;                                                          
                l_avg=(l1+l3+(l4/2));                                          
 
        % Calcul de l'espace max de la fenêtre:
                Espace_fenetre=((g-f)*(e/2));                                   
 
        % Calcul du nombre maximum de spires:
                Nmax_theorique=(Espace_fenetre*0.6)/(Scond);                    
 
        % Détermination du nombre de spires max et min:
                nmin=0.2*Nmax_theorique;         nmin=round(nmin);                   
                nmax=0.6*Nmax_theorique;         nmax=round(nmax);
 
 for N = nmin:nmax
                    for i_250 = 0.8:0.1:1.6
 
                        B=i_250;    
 
                        if B < Celta_250(1,1)
                            B = Celta_250(1,1);
                        end       
 
                        i1=find(Celta_250(:,1)<=i_250,1,'last');
 
                        if i1 < n_lig
                            mu = vect_u(i1)+ (vect_u(i1+1)-vect_u(i1))/(Celta_250(i1+1,1)-Celta_250(i1,1))*(i_250-Celta_250(i1,1));
                        else
                            mu = vect_u(i1)+ (vect_u(i1)-vect_u(i1-1))/(Celta_250(i1,1)-Celta_250(i1-1,1))*(i_250-Celta_250(i1,1));
                        if mu < 1
                            mu = 1;
                        end
                            mu;
                        end
 
                        % Calcul de l'entrefer:
                            entrefer=((mu0*N*IL)/B)-(l_avg/(mu/mu0));
                            vect_entrefer(N,B,lig_tole)=entrefer;
 
                        % Calcul de la section du circuit magnétique:
                            Section_CM=((L*IL)/(N*B));
                            vect_section(N,B,lig_tole)=Section_CM;
 
                        % Calcul de la profondeur du circuit magnétique:
                            profondeur=(Section_CM/f);      
                            vect_profondeur(N,B,lig_tole)=profondeur;
 
-------------------------------------------------------------------------------------------------------------------------------
J'ai vu en lisant les autres forum qu'il fallait impérativement commencer un vecteur par une valeur >1 et un entier. Cependant ma boucle FOR je peut que la faire varier de cette façon et j'ai besoin de voir les résultats du vecteurs en fonction des variables N,B et lig_tole.

C'est pourquoi je me retourne vers vous dans le but de savoir si il y avait une façon simple de pallier à ce problème.

Merci de porter attention à mon problème

A bientôt!

Greg