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

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    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 éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    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
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    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 habitué Avatar de larimoise
    Inscrit en
    Octobre 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 220
    Points : 197
    Points
    197
    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
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    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 304
    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 304
    Points : 52 882
    Points
    52 882
    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)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    sinon on peut faire

    qui renvoie la taille de toutes les variables du workspace ou bien seulement

    qui ne renvoie que la taille de f et de fw.

    Il y a une colonne "size"

    Dans un précédent post, j'avais hésité entre les fonctions

    et


  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Mon problème ne vient peut-être pas de la... Je pense que ma fonction de départ n'est pas bonne. Je ne sais pas vraiment quel fonction utilisé pour faire l'empreinte du signal que j'enregistre... parce que quand j'utilise la fonction size il me dit que la fonction f et fw n'existe pas. Donc voila... si quelqu'un connait le nom de la fonction qui permet de faire l'empreinte de mon signal... qui me le fasse savoir :p merci

  9. #9
    Membre habitué Avatar de larimoise
    Inscrit en
    Octobre 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 220
    Points : 197
    Points
    197
    Par défaut
    Vassili68 a dit:

    ... parce que quand j'utilise la fonction size il me dit que la fonction f et fw n'existe pas.
    Tu n'as pas utilisé la fonction clear dans ton code par hasard?

  10. #10
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    non ... pas de fonction clear... :s

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    personne n'a d'idée pour la fonction qui me permettrait de faire l'empreinte de mon signal ? :s

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