Bonjour mes amis !
Le problème est juste que le f=(x-3).^2; est mal placé ;-)
x=(1:5);
f=(x-3).^2;
for p=1:4
if f(p)>f(p+1)
disp('Fonction décroissante') ;
else
disp('Fonction croissante') ;
end
end Cependant, l'exemple est quelque peu biaisé par le fait que la variable
x et l'indice
p du vecteur
f prennent les mêmes valeurs, voici donc un exemple où l'on verra mieux la différence :
x=linspace(1,5,25);
f=(x-3).^2;
for p=1:numel(f)-1
if f(p)>f(p+1)
disp('Fonction décroissante') ;
else
disp('Fonction croissante') ;
end
end Comme tu dois le savoir, Matlab tourne assez souvent plus vite lorsqu'on utilise au mieux la vectorialisation. Ici, la version vectorialisée est moins rapide que la version avec boucle que j'ai écrite (il y a probablement mieux cela dit) mais si tu désires voir ce que cela pourrait donner (c'est toujours intéressant et cela peut resservir), je proposerais ceci par exemple :
n=25;
x=linspace(1,5,n);
f=diff((x-3).^2);
%%
increase=repmat('Fonction croissante ',n-1,1);
decrease=repmat('Fonction décroissante',n-1,1);
screen=repmat('Fonction constante ',n-1,1);
%%
screen(f>0,:)=increase(f>0,:); clear increase;
screen(f<0,:)=decrease(f<0,:); clear decrease;
disp(screen); Je te souhaite une bien bonne journée !
PS : Comme poukkid le mentionnait, le langage de programmation n'est pas précisé dans le message initial, ni dans le titre d'ailleurs. Je vais demander un changement de titre à la modération, comme cela ce sera plus clair si un jour quelqu'un cherche quelque chose et que le sujet apparaît dans la liste des résultats ;-)
Tous les animaux criaient bien haut
Qu’il était le crapaud le plus beau, quand il jouait du banjo