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 :

[interp1] problème de longueur de X et Y [Débutant]


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 46
    Points
    46
    Par défaut [interp1] problème de longueur de X et Y
    Bonjour,

    J'essaye d'utiliser interp1 dans le but de déterminer les valeurs d'une variable B pour n'importe quelle valeur A.

    J'utilise
    où A et B sont 2 vecteurs de 27 nombres chacun issus d'un tableau de données.
    Ci est une valeur qui varie mais qui a été calculée précédemment.

    Je cherche donc à obtenir les valeurs de Bi pour n'importe quel Ci mais Matlab m'affiche le message d'erreur suivant :

    ??? Error using ==> interp1 at 125
    X and Y must be of the same length.
    Je ne vois pas où se situe mon erreur.

    Je vous remercie de 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
    Bonjour,

    Citation Envoyé par nilsmatlab Voir le message
    où A et B sont 2 vecteurs de 27 nombres chacun issus d'un tableau de données.
    es-tu sur? Que renvoie :
    ?
    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
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 46
    Points
    46
    Par défaut
    Les 2 vecteurs renvoie cette réponse

    ans =
    
         1     1
    Ce sont des vecteurs que j'ai rentré manuellement sur Matlab, et je viens de vérifier s'il n'y avait pas d'erreur.

  4. #4
    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
    Pour supprimer les dimensions égales à 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bi=interp1 (squueze(A),squeeze(B),Ci);
    Mais A et B sont des scalaires, interp1 ne pourra donc pas interpoler. Comment remplis-tu ces variables?
    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.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 46
    Points
    46
    Par défaut
    Je les remplis sous forme de matrice
    A = [1425 2478 2453 4784....27e valeur]
    et B=[147 856 1257...27e valeur]

    J'ai aussi essayé en mettant avec des ; pour avoir un vecteur colonne, le résultat est le même.

  6. #6
    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
    Et comment peux-tu obtenir :
    comme taille de variable? Cette taille indique qu'il n'y a qu'un seul élément dans ta variable...
    Si tu ne nous montres pas un code complet qui permette de reproduire l'erreur, on pourra pas deviner l'origine de cette erreur...
    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.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 46
    Points
    46
    Par défaut
    J'ai ces 2 matrices
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A=[0 93 141 220 284 322 341 375 392 423 444 469 500 528 547 571 606 634 638 677 701 713 741 770 778 801 813];
     
    B=[0 11 44 78 101 108 128 182 206 227 245 262 279 293 318 345 347 349 388 415 435 443 449 452 487 496 802];
    Quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    size A
     
    ans =
     
         1     1
    Idem pour B.

    Ce que je voudrais, c'est que pour une valeur A aléatoire, Matlab m'associe une valeur de B


  8. #8
    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
    oh, excuse moi, je ne dois pas être très bien réveillé, je me suis trompé sur l'instruction size :
    Par contre je n'ai pas l'impression que tu aies besoin d'utiliser interp1... CE que tu veux faire, c'est tirer une valeur aléatoirement dans A et obtenir la valeur de B correspondante? Pourquoi cherches-tu à utiliser une fonction d'interpolation?
    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.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 46
    Points
    46
    Par défaut
    J'utilise une fonction interp1 car mes valeurs seront rangées dans un tableau, et que cette solution me paraît cohérent.
    Car j'ai un tableau de valeur A "aléatoires" (elles sont fixes mais ne correspondent pas à des valeurs de la matrice A). Et ce que je souhaiterais, c'est obtenir la valeur de B correspondante (comme tu l'as dit).

    Par exemple dans mon tableau, j'ai une valeur de A=412 et je voudrais savoir la valeur de B correspondant à cette valeur de A

    Qu'utiliserais-tu pour trouver la valeur correspondante?

  10. #10
    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
    Je ne comprends pas....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A=[0 93 141 220 284 322 341 375 392 423 444 469 500 528 547 571 606 634 638 677 701 713 741 770 778 801 813];
     
    B=[0 11 44 78 101 108 128 182 206 227 245 262 279 293 318 345 347 349 388 415 435 443 449 452 487 496 802];
    Avec ces valeurs, quel est le rapport entre A et B?
    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.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 46
    Points
    46
    Par défaut
    Par contre en faisant
    size(A) et size(B), j'ai bien une différence de longueur, c'est parce que j'avais une autre matrice plus grande qui s'appelait également B...

    J'ai corrigé le problème, mais il me met comme résultat que ce n'est pas un nombre (NaN), alors que je devrais normalement avoir un nouveau tableau des valeurs B(i) correspondant aux valeurs A(i) ?

  12. #12
    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
    Mais pour i donné, A(i) correspond déjà à un B(i)??? Pourquoi vouloir utiliser une fonction d'interpolation?
    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.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 46
    Points
    46
    Par défaut
    Par exemple, pour une valeur A(i) qui ne serait pas dans mon tableau (A=412 par exemple, j'aimerais connaitre la valeur de B car j'utilise les valeurs de B pour des futures formules)

  14. #14
    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
    On va finir par y arriver!

    Peux-tu nous montrer le code qui te renvoie des nan dans ton avant dernier message?
    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.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 46
    Points
    46
    Par défaut
    C'est bon, j'ai enfin réussi à obtenir le résultat attendu.
    Merci beaucoup Magelan

  16. #16
    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
    bah de rien, j'ai pas l'impression d'avoir fait grand chose...
    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.

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

Discussions similaires

  1. [Interp1] Problème d'interpolation
    Par mathylde dans le forum MATLAB
    Réponses: 9
    Dernier message: 07/07/2008, 17h17
  2. [VBA-E]Problème de longueur de macro sous VBA [E]
    Par titou8383 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 23/04/2007, 19h00
  3. Problème de longueur de requête dans une procédure stockée
    Par doudou_rennes dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/03/2007, 16h39
  4. Problème de longueur de lignes Excel.
    Par Mlezen dans le forum Excel
    Réponses: 3
    Dernier message: 03/05/2006, 16h29
  5. Réponses: 3
    Dernier message: 15/02/2006, 17h46

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