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 :

[find] "Matrix dimension must agree" [Débutant]


Sujet :

MATLAB

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur Photonique
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Photonique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 126
    Points
    126
    Par défaut [find] "Matrix dimension must agree"
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    n = 2^15;
    twidth = 3e-9;
    t0 = 1.2011e-11; 
     
    t = linspace(-twidth/2, twidth/2, n); t = t';   % <32768x1 double>
     
    ft = exp(-(t.^2/t0^2));  ft = ft/max(ft);  % <32768x1 double>
    La fonction ft(t) dessine une gaussienne dont je recherche la largeur à mi-hauteur. Pour cela au lieu d'utiliser les fonctions toutes faites j'essaye de le faire moi-même. Je cherche donc à trouver les valeurs de t pour lesquelles le ft correspondant est égal à max(ft)/2 (soit 0.5). Cependant cette valeur n'existe pas forcément dans mon tableau c'est pourquoi j'utilise la ligne suivante pour trouver les valeurs de ft qui se rapprochent le plus de la valeur 0.5 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    half = max(ft)/2;    % integer
    ind = find( ft  ==   ft(  abs( ft-half  ==  min( abs(ft-half) )));
    Pour moi je lis cette ligne de cette manière :
    ind contient l'indice de la ligne du tableau ft où la valeur ft est celle qui se rapproche le plus de la valeur half.

    Problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error using ==> eq
    Matrix dimensions must agree
    Apparemment l'erreur réside dans le fait que le 1er terme ft dans find n'est pas de la même dimension que celui après le =. Mais je ne vois pas en quoi ca pose problème vu qu'on cherche la valeur dans le tableau ft qui vaut celle après le =... Bref je suis bloqué.

    Merci pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonnjour,

    je ne vois pas bien à quoi sert la partie en rouge:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ind = find( ft  ==   ft(  abs( ft-half  ==  min( abs(ft-half) )));
    Plus simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ind = find( abs( ft-half)  ==  min( abs(ft-half) ));
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Voir ce message pour l'explication et le sujet de la FAQ vers lequel il renvoie.

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur Photonique
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Photonique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    Après essai je peux te répondre : à rien en effet ^^
    J'avais un précédent code un peu différent de celui là où ça marchait pourtant, la structure du find était la même et j'avais pas cette erreur.

    Ca marche et le résultat est correct.

    Merci pour ton aide et pour la rapidité de ta réponse !

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur Photonique
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Photonique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    Merci à toi également Winjerome

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

Discussions similaires

  1. [Débutant] Error using ==> max Matrix dimensions must agree.
    Par ryma* dans le forum MATLAB
    Réponses: 3
    Dernier message: 09/02/2011, 08h18
  2. Matrix dimensions must agree.
    Par naim2009 dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/08/2009, 11h12
  3. matrix dimension must agree
    Par naim2009 dans le forum MATLAB
    Réponses: 6
    Dernier message: 21/06/2009, 20h14
  4. Réponses: 15
    Dernier message: 12/02/2009, 18h41
  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