Problème d'échelle sous matlab
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Problème d'échelle sous matlab



  1. #1
    ami20

    Problème d'échelle sous matlab


    ------

    Bonjour,

    Je veux tracer une courbe sous matlab, avec un échelle logarithmique en axe des X.

    En effet, lorsque je trace ma courbe avec la fonction "semilogx", je reçois une courbe sans échelle en X même si mes données varient de 100e^6 à 500e^6.
    J'ai essayé de changer l’échelle des X à partir des propriétés des figures mais toujours le même problème.

    Est ce que vous pouvez m'aider pour corriger ce problème?

    Merci en avance.

    -----

  2. #2
    Antoane
    Responsable technique

    Re : Problème d'échelle sous matlab

    Bonjour,

    Sur quelle version de matlab travailles-tu ? 7
    peux-tu poster ton code, tes données (ou assimilables si elle sont confidentielles) à ploter et une copie d'écran de ton problème ?
    http://forums.futura-sciences.com/el...de-poster.html
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  3. #3
    minushabens

    Re : Problème d'échelle sous matlab

    Je connais mal matlab mais qu'est-ce qui empêche de transformer x et d'utiliser un "plot" ordinaire?

    sous R, en supposant que j'ai deux vecteurs de même longueur x et y, je ferais simplement plot(log(x),y)

  4. #4
    ami20

    Re : Problème d'échelle sous matlab

    Voici une capture de la figure, mais je ne peux pas attacher les valeurs vue qu'ils sont beaucoup.
    A noter que dans la figure j'ai changer l'échelle de l'axe des X pour afficher les valeurs suivantes [(100, 200, 300, 400, 500)], ou dans les pire cas afficher la valeur du centre (300).
    Images attachées Images attachées  

  5. A voir en vidéo sur Futura
  6. #5
    Antoane
    Responsable technique

    Re : Problème d'échelle sous matlab

    C'est du au fait que l'étendue de ta plage de fréquence est "trop" faible (un facteur 5 seulement entre min(f) et max(f)).

    Tu peux alors manuellement modifier l'affichage de l'axe x :
    Code:
    % Initialisation
    f=linspace(1e8, 5e8, 200);
    f0=2.5e8;
    y=abs(1./(1+1j*5*(f0./f-f./f0)));
    figure, plot(f, y)
    
    % modification des X-ticks
    g=gca;
    g.XScale='log';
    nTicks=2 % nombre de graduations à utiliser
    % ne conserver qu'une des deux lignes ci-dessous :
    g.XTick=logspace(log10(min(f)), log10(max(f)), nTicks); % vecteur contennat les graduations à placer
    g.XTick=linspace(min(f), max(f), nTicks); % vecteur contennat les graduations à placer
    Reste aussi l'option proposée par Minushabens.

    Mais on peut aussi se demander s'il est très pertinent de faire un x en log sur une plage aussi réduite.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  7. #6
    ami20

    Re : Problème d'échelle sous matlab

    Merci pour ta réponse,

    En effet, mes données (plus de 400 valeurs) sont regroupées dans un tableau en excel pour chaque axes (X= fréquence, Y= gain). pour chaque valeur de fréquence j'ai une valeur du gain équivalente. De plus, je vais après appliqué cette opération sur 5 autres tableaux pour tracer 5 autres courbes.
    Le code que tu m'as proposé, trace des courbes aléatoire et non pas à base des valeurs déjà trouvées et l’échelle des X il est en linaire et non pas en log.

    En autre, je n'ai pas bien compris la réponse de Minushabens.
    Dernière modification par ami20 ; 28/07/2016 à 21h37.

  8. #7
    Antoane
    Responsable technique

    Re : Problème d'échelle sous matlab

    Bonjour,
    Citation Envoyé par ami20 Voir le message
    En effet, mes données (plus de 400 valeurs) sont regroupées dans un tableau en excel pour chaque axes (X= fréquence, Y= gain). pour chaque valeur de fréquence j'ai une valeur du gain équivalente. De plus, je vais après appliqué cette opération sur 5 autres tableaux pour tracer 5 autres courbes.

    En autre, je n'ai pas bien compris la réponse de Minushabens.

    Le code que tu m'as proposé, trace des courbes aléatoire et non pas à base des valeurs déjà trouvées et l’échelle des X il est en linaire et non pas en log.
    Ce code trace une courbe inventée, puisque tu n'as pas donné tes valeurs !
    Pour le reste : il ne faut pas simplement appliquer le code, mais le lire, essayer de le comprendre et modifier des trucs si besoin. La valeur de nTicks, en particulier, représente le nombre de graduations que tu veux avoir, tu peux vouloir en mettre ou autre...

    Quelle version de matlab utilises-tu ?
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  9. #8
    ami20

    Re : Problème d'échelle sous matlab

    Bonjour,
    Merci pour votre aide.
    J'ai pu résoudre le problème.
    Merci beaucoup.

Discussions similaires

  1. Un probleme sous Matlab
    Par invite6e623f3d dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 24/05/2014, 10h00
  2. Problème de chemin sous Matlab
    Par invite153c19c4 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 18/08/2013, 17h25
  3. problème fft sous matlab
    Par invite83cbdc17 dans le forum Électronique
    Réponses: 8
    Dernier message: 10/06/2011, 18h44
  4. Problème d'échelle sur Matlab
    Par invite4ba02df1 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 05/05/2011, 11h51
  5. problème fft sous matlab
    Par invite83cbdc17 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 22/04/2011, 14h16