Matlab / Scilab : Remplacer une boucle FOR
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Matlab / Scilab : Remplacer une boucle FOR



  1. #1
    invitee5fedd72

    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

    -----

  2. #2
    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"

  3. #3
    invitee5fedd72

    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

  4. #4
    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"

  5. A voir en vidéo sur Futura
  6. #5
    invitee5fedd72

    Re : Matlab / Scilab : Remplacer une boucle FOR

    Citation Envoyé par einstein Voir le message
    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

  7. #6
    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"

  8. #7
    invitee5fedd72

    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 ":"

  9. #8
    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".

  10. #9
    invitee5fedd72

    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

  11. #10
    jumper0

    Re : Matlab / Scilab : Remplacer une boucle FOR

    Bonjour Est-il on peut aider
    je veut si (teta==pi/4) le programme non calculé et et compléments la boucle
    merci
    clc
    clear
    syms nx ny rk real
    p=11
    m=11
    for K=1:m
    teta(K)=K*2*pi/(2*p+a+1)-pi
    if teta>-pi/4 & teta<pi/4
    nx=1;rk=abs(1/cos(teta));ny=0;

    end
    if teta>3*pi/4 & teta<pi| teta>-pi & teta<-3*pi/4
    ny=0;rk=abs(1/cos(teta)); nx=1;

    end
    if teta>-3*pi/4 & teta<-pi/4
    nx=0;rk=abs(1/sin(teta));ny=-1;

    end
    if teta>pi/4 & teta♥*pi/4
    ny=1; rk=abs(1/sin(teta));nx=0;
    end
    if teta==pi/4
    end
    for n=1
    R(K,n)=imag(rk^((-3/2)+n)*(cos(((-3/2)+n)*teta)+i*sin(((-3/2)+n)*teta))*(nx+i*ny));
    end
    end

Discussions similaires

  1. transfert matlab/scilab
    Par ABN84 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 22/05/2008, 23h09
  2. matlab vs Scilab
    Par ABN84 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 10/05/2008, 21h59
  3. matlab/scilab
    Par ABN84 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 07/05/2008, 08h07
  4. matlab / scilab
    Par chwebij dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 13/02/2007, 15h44
  5. Scilab / Matlab
    Par ABN84 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 23/01/2007, 20h17