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 de dimension dans une formule


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Par défaut Problème de dimension dans une formule
    Bonjour a tous !!

    Excusez-moi je suis nouveau sur le forum donc je ne sais pas si je poste au bon endroit... J'ai un code matlab que je n'arrive pa à faire a marcher à cause d'une erreur qui m'embete vraiment... voila l'erreur :

    ??? Error using ==> minus
    Matrix dimensions must agree.

    Error in ==> lpc_recognition at 22
    d(i) = sqrt(sum((f-fw(i,:)).^2));
    Si quelqu'un peut m'aider ca serait vraiment sympa... Merci d'avance ;)

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Salut, bienvenue sur le forum. L'erreur est claire : tu as un pb de dimension entre f et fw si bien que tu ne peux pas les soustraire. Fais un

    ou bien un

    pour voir leur dimension. Nous ne sommes pas des devins : mets un peu plus de code si tu veux qu'on t'aide.

    Ps : je ne me rappelle plus très bien de la commande. Soit c'est whos, soit c'est whose (avec un e à la fin...)

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Par défaut
    Désolé mais ta fonction ne me donne rien...

    donc je te donne un peu plus de code; j'ai deux code en fait et dans le premier je sauvergarde des réponses afin de les comparer dans le deuxieme :

    1 er code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        y  = wavrecord(Nseconds*Fs, Fs, 'double');
        f = lpc(y,n);
        f = fw(i,:);
    Donc après je sauvergarde :

    2 eme code :

    j'apelle les sauvegardes puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    y  = wavrecord(1*Fs, Fs, 'double');
    f = lpc(y,n);
    d = zeros(1,size(words,1));
    for i=1:size(words,1)
        d(i) = sqrt(sum((f-fw(i,:)).^2));
    end
    Voila ... merci d'avance pour tes réponses

  4. #4
    Membre confirmé Avatar de larimoise
    Inscrit en
    Octobre 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 220
    Par défaut
    Salut,
    apparemment tu fait une soustraction entre deux matrices qui n'ont pas la même dimension, tu peux vérifier avec la fonction size qui donne la dimension.

    A+

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Par défaut
    >> size fw(i,:)

    ans =

    1 7

    >> size f

    ans =

    1 1
    Les 2 ont la même dimension non ? Désolé je débute dans matlab donc ne m'insulter pas tout de suite :p

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par Vassili68 Voir le message
    Désolé je débute dans matlab
    C'est bien de le spécifier...

    Regarde ceci :
    >> f=rand(5,4)

    f =

    0.8147 0.0975 0.1576 0.1419
    0.9058 0.2785 0.9706 0.4218
    0.1270 0.5469 0.9572 0.9157
    0.9134 0.9575 0.4854 0.7922
    0.6324 0.9649 0.8003 0.9595

    >> size f

    ans =

    1 1

    >> size(f)

    ans =

    5 4
    Dans le premier cas, MATLAB retourne la taille de la chaine de caractères 'f', dans le second, MATLAB retourne la taille de la matrice stockée dans la variable f.

    Tu dois donc ajouter ceci dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    size(fw(i,:))
     
    size(f)

Discussions similaires

  1. [Designer V5-V6] problème d'affichage dans une formule
    Par lechtinico dans le forum Débuter
    Réponses: 5
    Dernier message: 23/04/2009, 10h14
  2. Réponses: 4
    Dernier message: 28/04/2008, 17h50
  3. [Formule]Problème dans une formule SI ET
    Par Hellx dans le forum Excel
    Réponses: 2
    Dernier message: 09/05/2007, 12h00
  4. [CR X][Logiciel] Problème dans une formule
    Par Aitone dans le forum Formules
    Réponses: 10
    Dernier message: 06/03/2007, 09h34
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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