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 :

Problème d'allocation de valeur dans un for [Débutant]


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut Problème d'allocation de valeur dans un for
    Bonjours à tous,

    J'ai un plotting à faire qui me cause des problèmes. L'axe des x est une valeur incrémentielle 0:0.01:6.25 et l'axe des y est un vecteur de la même taille que je remplit avec une boucle for.

    Le problème est que seule la première valeur veut bien s'insérer dans mon vecteur. Les loops suivantes sont incapables d'assigner la valeur. Voici le code et merci pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    clear all
    close all
    clc
     
    %% cste
    rad = pi/180; %% 1 rad = 180/pi degré
    m2 = 600;
    g = 9.81;
    B = 8000;
    gamma = 2.91 * rad;
     
    %% init. table
    Fa1_table = ones(1,626);
     
    %% FA - phase 1
    for th1 = 0:0.01:6.25
        theta1 = th1 * rad;
        i = 1;
        beta1 = ( 2.6 - 2.5*cos(theta1) ) / ( 1.5*sin(theta1) + 1.5 );
        alpha1 = 2 * rad; %% rad/s²
        w1 = 0.8*theta1 * rad; %% rad/s
        %% store
        Fa1_table(i) = ( 4*m2*alpha1 + 6*m2*g*sin(pi-theta1-gamma) + B*w1 ) / ( 1.5*cos(beta1)*sin(theta1) + 1.5*sin(beta1)*cos(theta1) );
        i = i + 1;  
    end
     
    %% graph
    figure(1)
    Th1 = 0 : 0.01 : 6.25;
    plot(Th1,Fa1_table)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Salut,

    tu as juste fait une erreur à l'intérieur de ta boucle for.

    Tu as

    et ensuite dans la même boucle
    Du coup, à chaque itération, tu écrases i.

    suffit donc de sortir l'initialisation du i de la boucle ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    clear all
    close all
    clc
    
    %% cste
    rad = pi/180; %% 1 rad = 180/pi degré
    m2 = 600;
    g = 9.81;
    B = 8000;
    gamma = 2.91 * rad;
    
    %% init. table
    Fa1_table = ones(1,626);
      i = 1;
    %% FA - phase 1
    for th1 = 0:0.01:6.25
        theta1 = th1 * rad;
      
        beta1 = ( 2.6 - 2.5*cos(theta1) ) / ( 1.5*sin(theta1) + 1.5 );
        alpha1 = 2 * rad; %% rad/s²
        w1 = 0.8*theta1 * rad; %% rad/s
        %% store
        Fa1_table(i) = ( 4*m2*alpha1 + 6*m2*g*sin(pi-theta1-gamma) + B*w1 ) / ( 1.5*cos(beta1)*sin(theta1) + 1.5*sin(beta1)*cos(theta1) );
        i = i + 1;  
    end
    
    %% graph
    figure(1)
    Th1 = 0 : 0.01 : 6.25;
    plot(Th1,Fa1_table)

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Mais quel idiot!

    Je cherchais une erreur trop compliqué.

    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Quand on a la tête dans le truc, on ne voit plus trop ce qu'on a écrit...

    Et ce sont en général les plus petites boulettes qui sont les plus pénibles .

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

Discussions similaires

  1. problème de passage de valeur dans une fonction
    Par jeremie74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 21/09/2007, 18h30
  2. problème d'entré de valeur dans le registre
    Par fabandskate dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/04/2007, 23h37
  3. [WebForms]Problème de récupération de valeur dans GridView
    Par Dadou74 dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 05/12/2006, 15h47
  4. Problème d'allocation de mémoire dans la pile
    Par prophet666 dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 19/01/2006, 02h22
  5. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49

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