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'index dans les matrices [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Par défaut Problème d'index dans les matrices
    Salut à tous,
    j'ai un petit problème avec mon code matlab et je ne trouve pas la solution bien que je pense que c'est tout bête...
    Voici le code que j'essaye de compiler:
    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
    32
    33
    34
    35
    36
    function [T,U] = fun(T1,T2,U1,n)
    % Pas utilisé dans la méthode:
    h = (T2-T1)/n;
    e = h/6;
    f = h/2;
    % Abscisses temporelles:
    T = linspace (T1,T2,n+1);
    % Initialisation de la matrice contenant les valeurs des deux variables:
    U = zeros(length(T),2);
    U(1,1) = U1(1);       % Valeur de x en t = 0
    U(1,2) = U1(2);       % Valeur de y en t = 0
     
    for i=1:n
        % Pour les x(t) et y(t):
        R = U(i,:);
        K1 = f(R);
        K2 = f(R+f*K1);
        K3 = f(R+f*K2);
        K4 = f(R+h*K3);
        U(i+1,:) = R+e*(K1+2*K2+2*K3+K4);    
    end
    end
     
    function dudx = f(U)
    % Paramètres constants du modèle:
    a = 2e-5;
    b = 1e-8;
    c = 6e-5;
    d = 7e-13;
    % Calculs de f
    X = U(1);
    Y = U(2);
    dudx = U;
    dudx(1) = (a-b*Y)*X;
    dudx(2) = (d*X-c)*Y;
    end
    et voici le message d'erreur qui apparaît dans la fenêtre de commande:
    ??? Index exceeds matrix dimensions.

    Error in ==> matlab5>forest at 29
    K1 = f(R); K2 = f(R+f*K1); K3 = f(R+f*K2); K4 = f(R+h*K3); % Calcul des K

    Error in ==> matlab5 at 8
    [T,U] = forest(Tstart,Tend,Ustart,n);
    Le problème vient directement du calcul de mon K1 (et je suppose que le même problème se posera avec K2,K3,K4) mais je ne vois pas en quoi les indices sont incorrects...

    Si une bonne âme pouvait regarder

    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Dans un premier temps, ca serait plus pratique à debugger si tu mettais chaque calcul sur une ligne séparée.

    Sinon ton problème vient du fait que tu utilises une variable nommée f et une fonction avec le même nom. Dans ce cas de figure, MATLAB ne prend en compte que la variable, d'où le problème d'indice.

    Renomme ta variable ou ta fonction et tout devrait rentrer dans l'ordre.

    Duf

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Par défaut
    Oui, c'est vrai désolé, je ferai attention pour la prochaine fois ! (j'ai remis en plus clair).

    Merci pour ta réponse, je n'avais pas pensé à ça du tout étant donné que j'utilise une variable et une fonction. Je pensais que Matlab les différenciait si on avait des arguments après le lettre .

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

Discussions similaires

  1. [Débutant] probléme d'index sur les matrices
    Par Slash85 dans le forum MATLAB
    Réponses: 6
    Dernier message: 26/04/2011, 22h57
  2. Problème d'espace dans les varibles passées par GET !
    Par boukay dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/03/2006, 14h36
  3. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/02/2006, 12h09
  4. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 28/02/2006, 11h36
  5. [VB.NET] [Débutant] Probléme de variable dans les requettes
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 13h13

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