Bonjour,
je travaille sur l'algorithme des chauves-souris "BAT Algorithm" pour effectuer un seuillage multi-niveaux.
une fois sur la démo proposé dans le file exchange : http://www.mathworks.com/matlabcentr...gorithm--demo-
je n'ai pas pu comprendre une fonction :

  • partie initialisation telle que d est la dimension :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
% Lower limit/bounds/ a vector
Lb=-2*ones(1,d);
% Upper limit/bounds/ a vector
Ub=2*ones(1,d);

  • et appel de fonction telle que Sol(i,: ) c'est l'une des solution "chaque ligne est une solution" :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
% Apply simple bounds/limits
Sol(i,:)=simplebounds(Sol(i,:),Lb,Ub);
et enfin la fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
function s=simplebounds(s,Lb,Ub)
  % Apply the lower bound vector
  ns_tmp=s;
  I=ns_tmp<Lb;
  ns_tmp(I)=Lb(I);
 
  % Apply the upper bound vector 
  J=ns_tmp>Ub;
  ns_tmp(J)=Ub(J);
  % Update this new move 
  s=ns_tmp;

Merci d'avance.