IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Probleme incrementation boucle for [Débutant]


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : janvier 2014
    Messages : 42
    Points : 33
    Points
    33
    Par défaut Probleme incrementation boucle for
    Bonjour,

    J’ai un petit soucis car je n’arrive pas a incrémenter une boucle for.

    En fait, je souhaite créer une matrice P dont le nombre de lignes sera incrémenté par la boucle for. P étant une matrice de deux colonnes, l’equation de la 1ere colonne sera : P(i,1)=exp(j*k(i,1).*80) et celle de la 2eme colonne sera : P(i,2)=exp(-j*k(i,1).*80).



    k (déja calculé), étant un vecteur colonne comportant le meme nombre de ligne que i (i étant la variable de mon incrémentation).

    J’ai donc crée la boucle for suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i=0:4:4096;
     
        P(i,1)=exp(j*k(i,1).*80);
        P(i,2)=exp(-j*k(i,1).*80);
     
    end
    Je ne comprends pas pourquoi, mais ce message d'erreur apparait : "??? Attempted to access k(0,1); index must be a positive integer or logical."

    En effet, je ne comprends pas pourquoi sachant que exp(0) est mathematiquement possible et est positif de surcrois.

    De plus, ma variable i ne comporte que le chiffre 0 au lieu d'etre un vecteur 1x1025. Est-ce normal ?

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance en conception mécanique et prototypage
    Inscrit en
    novembre 2006
    Messages
    20 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance en conception mécanique et prototypage

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 150
    Points : 54 268
    Points
    54 268
    Par défaut
    Citation Envoyé par preto91 Voir le message
    ce message d'erreur apparait : "??? Attempted to access k(0,1); index must be a positive integer or logical."
    Lire la FAQ : Attempted to access variable(0); index must be a positive integer or logical.

    Citation Envoyé par preto91 Voir le message
    De plus, ma variable i ne comporte que le chiffre 0 au lieu d'etre un vecteur 1x1025. Est-ce normal ?
    La variable d'itération i est bien un scalaire et non pas un vecteur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 0:4:4096
     
    end
    est différent de

    Ingénieur indépendant en conception mécanique et prototypage :
    • conception mécanique 3D (Autodesk Fusion 360)
    • impression 3D (Ultimaker)
    • développement informatique (MATLAB, Python, C)
    • programmation de microcontrôleur (Microchip PIC)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : janvier 2014
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Ah, le probleme etait donc que je commencais ma boucle par 0 et qu'il faut la commencer par 1.

    Merci pour la precision sur i.

  4. #4
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Salut,

    Dernier conseil : évite d'utiliser "i" comme variable d'incrémentation (tu peux utiliser "k" ou autre...). Car "i" est le nombre imaginaire pur par défaut sous matlab. Si tu dois l'utiliser plus tard, cela pourrait te poser quelques soucis si tu mélanges les deux...

    Cordialement,
    Je ne réponds pas aux MP techniques. Le forum est là pour ça.
    La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
    Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
    Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec boucle "for"
    Par kentaro dans le forum ActionScript 1 & ActionScript 2
    Réponses: 16
    Dernier message: 30/01/2008, 20h15
  2. probleme de boucle for
    Par afssaLERH dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/10/2007, 17h30
  3. Probleme de boucle for
    Par rawkus dans le forum Flash
    Réponses: 2
    Dernier message: 14/05/2007, 20h15
  4. [Tableaux] Probleme de boucle for
    Par keumlebarbare dans le forum Langage
    Réponses: 12
    Dernier message: 20/09/2006, 14h29
  5. [C#] Probleme de boucle for et random
    Par Freeman166 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/01/2005, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo