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 :

Obtenir valeur de l'ordonnée quand x=0


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Obtenir valeur de l'ordonnée quand x=0
    Bonjour,

    Alors je suis actuellement bloqué sur mon code et j'ai cherché sans trouver une solution à mon problème.
    Je m'explique, j'ai tracé un graph tout bête avec des coordonnées prédéfinies auparavant. Mais j'ai besoin d'obtenir, la valeur de y à x=0.
    J'arrive à le faire manuellement avec la toolbox, en utilisant "basic fiitting" puis "shape-preserving interpolant" et en utilisant le "Data cursor" j'arrive aux coordonnées voulu (cad x=0).
    J'aimerais avoir ça automatiquement dans mon code, malheureusement lorsque je fit avec "pchip" celui-ci commence à ma première valeur de x qui est supérieur à x=0. Du coup quand j'utilise la fonction find ou interp1, cela ne fonctionne pas car je sors de ma plage de données de x.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    x=[handles.Ti1;handles.Ti2;handles.Ti3;handles.Ti4;handles.Ti5;handles.Ti6;handles.Ti7];
    y=[Mt_1;Mt_2;Mt_3;Mt_4;Mt_5;Mt_6;Mt_7];
    title('\bf \fontsize{15} Signal = f (Inversion Time)')
    xlabel('\fontsize{12} \color{red} Ti')
    ylabel('\fontsize{12} \color{red} M(t)')
    hold on
    scatter(x,y,100,'x');
    hold off
    f=fit(x,y,'pchip');
    plot(f,x,y);
    grid on
    Nom : Sans titre.png
Affichages : 120
Taille : 10,0 Ko

    Si quelqu'un peut m'éclairer sur mon problème, merci d'avance.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Technicien optique intrumentale et optronique
    Inscrit en
    Avril 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien optique intrumentale et optronique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 35
    Points : 35
    Points
    35
    Par défaut
    Bonjour, la valeur de y en x=0 tend vers la valeur -Inf, Matlab peut avoir quelques difficultés avec +/-Inf. Tu peux essayer de créer un point supplémentaire en insérant une valeur 0 au début du vecteur x et -Inf au début du vecteur y. Mais je ne sais pas ce que donnera l'insertion de -Inf dans ton programme. D'autre part tu seras peut-être de toute façon obligé de remplacer -Inf par une valeur autre valeur très basse. Dis nous si cela a marché.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Tout d'abord merci de votre réponse.
    Malheureusement, j'avais déjà essayé cela aussi. En mettant -Inf en y, il me dit que c'est impossible. Et de toute façon, il faut que Matlab me détermine la valeur de y en x=0. Cela n'aurait pas de sens d'insérer une valeur en début du vecteur y pour correspondre à x=0.

    Nom : Sans titre.png
Affichages : 80
Taille : 40,5 Ko

    Ce que je disais : manuellement en ajoutant un "basic fitting" (courbe verte sur mon graph) et en utilsant le cursor, il me recréer la suite de la courbe jusqu'à x=0, je peux donc en interpoler la valeur en y.
    Je pensais que comme Matlab était capable de le faire manuellement disons, cela aurait été aussi possible de le coder automatiquement.
    Je cherche beaucoup et je ne trouve nulle part lorsque qu'il s'agit de trouver un point qui sort de la plage de données. Peut-être cela n'est pas possible à coder ?

    Merci d'avance si vous avez d'autres solutions à me proposer.

Discussions similaires

  1. Ajouter la valeur d'un champ quand on clique dessus.
    Par godwin dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/06/2007, 16h10
  2. Réponses: 3
    Dernier message: 29/11/2006, 12h49
  3. Réponses: 4
    Dernier message: 16/10/2006, 09h54
  4. Obtenir valeur décimale d'un caractère
    Par Onil_ dans le forum C++
    Réponses: 4
    Dernier message: 04/06/2006, 15h56
  5. changer la valeur d'un jbutton quand je clic dessus
    Par jnauche dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 06/04/2006, 17h35

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