Visualiser un interval de temps sur une courbe
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Visualiser un interval de temps sur une courbe



  1. #1
    Krafter

    Visualiser un interval de temps sur une courbe


    ------

    Bonjour,
    Une fois de plus bloqué dans MatLab et je n'ai pas trouver de sujet correspondant à mon soucis.

    Alors voilà, j'ai une courbe qui représente mon essai, avec le temps en abscisse. J'ai dans mon programme une variable qui représente la durée d'un contact durant mon essai. Ce que je voudrais c'est pouvoir mettre sur ma courbe obtenue, 2 lignes verticales qui montrerait le début et la fin du contact.

    A savoir que : je pense placer ces lignes manuellement, en effet les courbes obtenues n'étant pas "simples" je ne peux pas mettre de condition du style : "dès que la courbe s'éloigne de 0 faire une ligne et faire une autre ligne quand elle y repasse", non non moi mes lignes c'est le chaos ^^ Mais manuellement moi je sais ou les placées.
    Une fois les courbes obtenues j'ai essayé les outils disponibles dans le .fig obtenu, je peux faire apparaitre des droites et les déplacer, mais y a-t-il un moyen de leur appliquer un intervalle? Celui mesurer par ma variable qui mesure mon temps de contact? Voilà car je voudrais être précis au centième de seconde avec un axe en seconde, que quand je zoom sur un axe pour placer au mieux une verticale, ensuite si je dé-zoom / zoom la verticale change d'abscisse :/
    Par exemple je zoom à fond pour placer ma verticale à 2 secondes sur mon axe temps, si je dé-zoom elle ne bougera pas sur mon écran, or le graphique bouge, elle peut donc se retrouver à 3,5 secondes par ex...

    Voilà dans le meilleur des monde ce qu'il me faudrait c'est programmer dans matlab 2 verticales à afficher sur ma courbe, espacée de ma variable calculée et que je puisse déplacer à la main en abscisse (et qui fasse le café et des massages si possible). Plus sérieusement, étant débutant complet sur MatLab une telle chose est-elle possible? Ou j'abandonne complètement l'idée?


    Désolé du pavé, merci de votre temps,

    Krafter

    -----

  2. #2
    Evil.Saien

    Re : Visualiser un interval de temps sur une courbe

    Salut,

    Je vois pas bien où est le problème dans la mesure où une courbe verticale se trace comme une courbe non verticale... Essaie :
    Code:
    plot([0 0], [0 1])
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  3. #3
    Krafter

    Re : Visualiser un interval de temps sur une courbe

    Merci de ta réponse,

    J'avais vu lors de mes recherches de solutions que l'on pouvait programmer des affichages de verticales ainsi. Cependant, moi ce que je voudrais faire est un chouilla différent et je ne sais pas si c'est faisable.

    Déjà je voudrais avoir 2 lignes avec un intervalle défini (du style plot([0 0], [0 1]) et plot([0+duree_contact 0+duree_contact] [0 1]) ). De cette façon je peux les obtenir.
    Comme tu vois je ne connais que la durée de mon contact et pas son x_debut et x_fin (dis moi si c'est pas clair ^^"). Donc une fois que j'ai mes 2 lignes espacées correctement, je voudrais faire en sorte de faire "coulisser" ces lignes sur mon graphique, afin de positionner cet espacement comme je le souhaite. Je ne sais pas si c'est faisable, si oui je ne sais pas si tracer des lignes de cette façon est la meilleure solution? Pour simplifier le code que je souhaite ça serait :

    plot([0(ajustable) 0(ajustable)], [0 1]) et plot([0+duree_contact(ajustable) 0+duree_contact(ajustable)] [0 1])

    Voilà ^^

  4. #4
    Evil.Saien

    Re : Visualiser un interval de temps sur une courbe

    Tout est possible, mais en général rendre les choses interactives demande plus de code...
    https://fr.mathworks.com/help/contro...t-updates.html
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  5. A voir en vidéo sur Futura
  6. #5
    Krafter

    Re : Visualiser un interval de temps sur une courbe

    Bonjour,

    Je me suis plongé un peu dans le lien que tu m'a envoyé, en effet ça correspond pas mal à ce que je recherche, déjà rassurant de voir que tout est faisable!

    Par contre je bloque un peu. J'ai mis en place l'UIcontrol avec ce genre de lignes comme indiqué :

    Code:
    b = uicontrol('Parent',f,'Style','slider','Position',[81,54,419,23],...
                  'value',zeta, 'min',0, 'max',1);
    bgcolor = f.Color;
    bl1 = uicontrol('Parent',f,'Style','text','Position',[50,54,23,23],...
                    'String','0','BackgroundColor',bgcolor);
    bl2 = uicontrol('Parent',f,'Style','text','Position',[500,54,23,23],...
                    'String','1','BackgroundColor',bgcolor);
    bl3 = uicontrol('Parent',f,'Style','text','Position',[240,25,100,23],...
                    'String','Damping Ratio','BackgroundColor',bgcolor);
    Bon moi j'ai modifier tout ça à ma sauce et ça s'affiche bien. Mon soucis vient de la suite, pour rendre le slider interactif lors de l'appel du callback.
    En effet dans le callback de l'exemple il utilise : b.Callback = @(es,ed) updateSystem(h,tf(wn^2,[1,2*(es.Value)*wn,wn^2]));
    Or au départ, il créer un système pour tracer sa fonction, puis un stepplot (qui apparemment sert à appeler une fonction tracée de cette façon). Sauf que moi dans mon cas, mes bêtes plot [x x] [y1 y2] que j'ai pour tracer mes verticales, je ne passe pas par stepplot ni rien et d'ailleurs ça m'étonnerait que je puisse au vu de la doc que j'ai lu. Pourriez vous m'aider dans la façon dont je déclare ces verticales au départ pour ensuite les appeler dans le callback? J'ai essayé de mettre directement un callback dans le ui control je pense que ça devrait être proche de la solution (?) :

    Code:
    b = uicontrol('Parent',f,'Style','slider','Position',[81,54,419,23],...
                  'value',zeta, 'min',0, 'max',1,'Callback',@obj.sliderCallback);
    Est-ce dans cette voie? ^^ Si oui je n'ai pas réussi à déclarer mes plot de verticales comme obj ^^"


    Merci!
    Dernière modification par JPL ; 07/03/2017 à 14h30. Motif: Ajout de la balise Code (#) pour garder l'indentation

Discussions similaires

  1. Visualiser Les UV, IR, et lumière visible en même temps
    Par stephaneweg dans le forum Physique
    Réponses: 7
    Dernier message: 15/08/2016, 09h13
  2. Transformee de fourier d'une serie de points avec un interval de temps different
    Par invite51b0dd76 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 20/06/2011, 15h07
  3. projet tutoré: visualiser consommation en temps réel
    Par invitee59ad112 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 02/12/2008, 18h35
  4. Le temps est-il courbé par le temps météorologique ?
    Par invite106d9118 dans le forum Physique
    Réponses: 4
    Dernier message: 21/04/2008, 15h43
  5. logiciel permettant de visualiser 2 webcam en même temps
    Par inviteef13ab03 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 07/02/2005, 11h21