-
08/11/2008 - 19h07 lui
Matlab / Scilab : Remplacer une boucle FOR
Bonjour,
voici une partie de mon programme: Code: for i=1:1:Nt
Matrice (i, :) = Vecteur;
end avec
Nt : entier connu
Matrice: Matrice déja définie
Vecteur : Vecteur connu.
L'objectif de ce programme est de mettre dans toutes les lignes d'une matrice le contenu du même vecteur.
J'aimerai savoir s'il est possible de modifier ce programme pour suprimer la boucle FOR
Merci d'avance
-
08/11/2008 - 23h41 ABN84
Re : Matlab / Scilab : Remplacer une boucle FOR
dans ce cas precis, je penses que la boucle for est tres adaptée à ton probleme
"Engineering is the art of making what you want from what you get" -
09/11/2008 - 06h29 lui
Re : Matlab / Scilab : Remplacer une boucle FOR
Oui, cette boucle régle mon problème, mais comme je sais que le valeur de Nt est très grande, j'aimerai réaliser cette fonction sans la boucle.
Merci
-
09/11/2008 - 11h40 ABN84
Re : Matlab / Scilab : Remplacer une boucle FOR
là, je suis etonné. c'est justement quand Nt est elevé qu'on a recours aux boucles.
"Engineering is the art of making what you want from what you get" -
09/11/2008 - 20h31 lui
Re : Matlab / Scilab : Remplacer une boucle FOR
 Envoyé par einstein là, je suis etonné. c'est justement quand Nt est elevé qu'on a recours aux boucles. Je suis d'accord avec vous, mais vu que je suis entrain de réaliser un long programme, j'aimerai ne pas utiliser trop de boucle.
Donc si vous avez une idée à me lancer, elle sera la bienvenue.
Merci
-
09/11/2008 - 22h05 ABN84
Re : Matlab / Scilab : Remplacer une boucle FOR
je ne comprends vraiment pas ton raisonnement.
c'est en ayant un programme long qu'on use des boucles.
Sans boucle?
si Nt=4: Code: Matrice (i, 1) = Vecteur;
Matrice (i, 2) = Vecteur;
Matrice (i, 3) = Vecteur;
Matrice (i, 4) = Vecteur; sans boucle tu as autant de ligne que Nt.
avec une boucle tu as 3 lignes quelquesoit Nt.
"Engineering is the art of making what you want from what you get" -
09/11/2008 - 22h27 lui
Re : Matlab / Scilab : Remplacer une boucle FOR
J'ai bien compris l'intéret de la boucle, mais je me demande si on ne peux pas faire ça sans utiliser la boucle, par exemple avec les deux points ":"
-
10/11/2008 - 08h38 lou_ibmix_xi
Re : Matlab / Scilab : Remplacer une boucle FOR
sous MATLAB / OCTAVE, tu as la fonction 'repmat': Code: matrice = repmat (vecteur, Nt, 1); pas sûr de la syntaxe mais l'idée est là: repmat (N, rows, columns) crée une matrice de "rows" lignes et "columns" colonnes dont les élément sont la matrice "N".
Tant qu'il y à de la vis, il y a du tourne-vis -
10/11/2008 - 19h15 lui
Re : Matlab / Scilab : Remplacer une boucle FOR
Merci lou_ibmix_ix pour la réponse.
La fonction scilab qui correspondant à repmat est mtlb_repmat.
J'ai une autre question: Dans le cas où le vecteur est généré Nt fois (voir code) est ce que il est possible d'utiliser cette fonction sans une boucle. Code: for i =1:1:Nt
Matrice(i, :) = GenereVecteur(a, b);
end avec :
GenereVecteur(a, b): une fonction qui génére un vecteur dans la taille correspond a la taille des lignes de la matrice.
Merci d'avance
| | |