bonjour,
je suis entrain de programmer problème d'optimisation de la maintenance préventive avec la technique du recuit simulé ,je veux parcourir cette matrice
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
D=[555  1 20  7 10 10  5  5  5  5  3
      555 10 20  5 10 10 10  5  5  zeros(1,2)
      180  1 20  2 15 15 zeros(1,5)
       .
       .
       .
       21 ]
je dois prendre une valeur aléatoire entre [1 20](colonne 2 et3) et ajouter le 7(colonne 4) à cette valeur ensuite soustraire 555 (colonne 1)de la somme totale de la première ligne(D1=sum(D(:,1))), ainsi de suite pour toute la matrice ,pour cela j'ai fait une boucle for pour la création d'une valeur aléatoire .
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 for i=1:Nsol
      for j=1:Nu;%Nu=21 et  Nsol=1 nombre de solutions initiales pour recuit simulé 
            Sol(i,j)=randi([EDR(1,j) EDR(2,j)],1);
    end 
  end
et pour avoir la valeur souhaité j'ai fait
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
idice=Sol(i,j):Sol(i,j)+D(:,4)-1
N(i,j)=N(i,j)-D(j,1);
sachant que N(i,j) est une matrice ligne contient 20 colonnes N=D1*ones(1,20).
mais le programme ne marche pas
comment dois je introduire l'indice dans la valeur souhaitée ?
merci