Boucle for à double condition sous matlab

Résolu/Fermé
boubouklo Messages postés 10 Date d'inscription vendredi 29 janvier 2010 Statut Membre Dernière intervention 17 juin 2011 - 29 janv. 2010 à 15:44
boubouklo Messages postés 10 Date d'inscription vendredi 29 janvier 2010 Statut Membre Dernière intervention 17 juin 2011 - 2 févr. 2010 à 08:37
Bonjour,
Quelqu'un sait-il s'il est possible sous matlab de faire une boucle for avec une double condition du genre ?

for (i=xmin:delta:xmax)&(j=ymin:delta:ymax)
ce que je veux faire
end

Merci de m'éclairer!

7 réponses

boubouklo Messages postés 10 Date d'inscription vendredi 29 janvier 2010 Statut Membre Dernière intervention 17 juin 2011 1
29 janv. 2010 à 17:01
Merci Chiti_ j'y ai pensé et justement ça ne fonctionne pas d'où ma question: existe-t-il sous matlab la possibilité de faire une boucle for à plusieurs arguments. Si oui quelqu'un connaitrait-il la syntaxe et serait-il assez gentil pour me donner un petit coup de main?

Merci
1
chiti_ Messages postés 1044 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 23 novembre 2014 128
1 févr. 2010 à 21:08
Oh! je t'en pris!
j'ai pas pensé à combiner For avec If, par ce que je ne sais pas c'est quoi le cas que tu traite, mais bon !!
bonne chance pour la suite ;)
1
chiti_ Messages postés 1044 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 23 novembre 2014 128
29 janv. 2010 à 15:45
XD, essaye ça, et t'aura ta réponse !!
0
chiti_ Messages postés 1044 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 23 novembre 2014 128
30 janv. 2010 à 15:25
Je ne connais pas trop de trucs sur Matlab, car je programme en C/C++ mais de ce que j'ai étudié en Algorithmique, ça n'existe pas une double condtion en POUR, même en C, en Java, en Delphi ...etc;
donc, si tu veux mettre une double condition, tu dois utiliser une autre boucle, car la boucle FOR est comme ceci:
For ( Condition_du_debut; Condition_d_arret; incrémentation)
et puis c'est tout, si tu veux une double condition, il y a While, ou Do While,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
boubouklo Messages postés 10 Date d'inscription vendredi 29 janvier 2010 Statut Membre Dernière intervention 17 juin 2011 1
1 févr. 2010 à 11:48
Merci beaucoup de ton aide Chiti_, j'ai réussi à régler mon problème avec des boucles for. et une boucle if.
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
1 févr. 2010 à 21:25
alors tu peux tout à fait faire deux boucles for imbriquées en matlab (une première boucle for qui boucle sur une deuxième).

Mais ceci est extrêmement peu optimisé, et si tu as besoin de rapidité d'exécution il faut chercher à essayer de vectoriser (c-à-d appliquer des formules sur tout un vecteur / une matrice avec toutes les valeurs de i et de j que tu veux utiliser par exemple).

Par exemple, Matlab traite ceci :

X = 9000:0.5:10000
Y = X.^2 + 3*X - 4


beaucoup plus rapidement que

for i=9000:0.5:10000
  Y(i) = i^2 + 3*i -4
end for


(la syntaxe exacte est peut-être fausse, mais j'espère que tu m'as compris)
0
boubouklo Messages postés 10 Date d'inscription vendredi 29 janvier 2010 Statut Membre Dernière intervention 17 juin 2011 1
2 févr. 2010 à 08:37
Merci Pacorabanix. En effet en vectorisant l'execution est plus rapide et je pense que je vais optimiser mon programme avec ça. Comme je suis un peu débutante en matlab je n'y avais pas pensé! Merci à toi!
0