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 :

Inner matrix dimensions must agree


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Inner matrix dimensions must agree
    Bonjour, j'ai un petit programme en matlab

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    n=2; 
    h=20; 
    d=10; 
    L=300; 
    f=8; 
    x=-150; 
    H=(f*((2*x)./L).^2+h) 
    hc=[H*ones(n,1)] 
    xc=[d*ones(n,1)]
    si je veux faire varier le point x comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    n=2;
    h=20;
    d=10;
    L=400;
    f=8;
    x=-150:50:150;
    H=(f*((2*x)./L).^2+h)
    hc=[H*ones(n,1)]
    xc=[d*ones(n,1)]
    j'obtiens
    ??? Error using ==> mtimes 
    Inner matrix dimensions must agree. 
    Error in ==> Untitled at 8 
    hc=[H*ones(n,1)]
    Merci d'avance
    Dernière modification par Invité ; 18/05/2011 à 22h22. Motif: Insertion de code = ajout des balises [code] (bouton # de l'éditeur)

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Je vois deux problèmes dans ton code:
    - Pour commencer, tes vecteurs x et H comptent length(x) et length(H) 7 valeurs, donc tu ne peux multiplier H par ones(n,1) pour n égal à 2: il te faut le même nombre de valeurs.
    - Ensuite, il faut faire attention que x et H sont des vecteurs 7x1 (à différencier de 1x7), donc la multiplication se fera plutôt avec ones(1,N) avec N = length(x) (égal à 7 ici).

    PS: pense à regarder la du site, elle contient un bon nombre d'erreurs courantes expliquées.

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci jerome pour ta belle reponse et pour l'explication exactement que dois je faire pour avoir la reponse suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    hc =
     
       24.5000      22   20.5000    20     20.5000       22      24.5000
       24.5000      22   20.5000    20     20.5000       22      24.5000
     
    xc =
     
        10      10      10   10     10     10     10
        10      10      10   10     10     10     10
    merci pour ton aide
    Dernière modification par Invité ; 19/05/2011 à 18h17.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Comme je te l'ai dis dans mon dernier point, tu peux déjà introduire une variable N représentant la longueur de x.
    Ensuite, je présume que tu veux que le nombre de ligne de hc dépende de n et ne soit pas simplement de 2, donc tu peux pour cela utiliser la fonction repmat (doc repmat pour obtenir sa documentation sur Matlab).
    Ensuite pour xc, il te faudra juste rajouter la longueur N dans ton ones.

  5. #5
    Invité
    Invité(e)
    Par défaut
    merci ,c'est-à-dire n*length(x) 2*7
    est-ce que si possible comme suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    hc=[H*repmat(n,length(x))]
    xc=[d*repmat(n,length(x))]
    Dernière modification par Invité ; 19/05/2011 à 22h01. Motif: Ajout des balises code => sélection du code et bouton #. Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Pas tout à fait, il faut rentrer d et H dans la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    N = length(x);
    hc = repmat(H,n,1); H est déjà de longueur 7
    xc = repmat(d,n,N); % ou d*ones(n,N); mieux pour un scalaire
    Il suffisait d'essayer pour le voir

Discussions similaires

  1. [Débutant] Inner matrix dimensions must agree
    Par marzoukaymen dans le forum MATLAB
    Réponses: 3
    Dernier message: 06/05/2015, 09h00
  2. [Débutant] Inner matrix dimensions must agree.
    Par warplane95 dans le forum MATLAB
    Réponses: 3
    Dernier message: 26/03/2014, 21h26
  3. Error using .* Inner matrix dimensions must agree.
    Par scorpzak25 dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/09/2013, 06h35
  4. [Débutant] Je ne comprends pas l'erreur "Inner matrix dimensions must agree"
    Par osabri dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/12/2011, 22h22
  5. Matrix dimensions must agree.
    Par naim2009 dans le forum Images
    Réponses: 1
    Dernier message: 23/01/2009, 21h16

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