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 :

fixer la colorbar à l'intérieur d'une boucle


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Points : 63
    Points
    63
    Par défaut fixer la colorbar à l'intérieur d'une boucle
    Bonjour
    Je souhaite plotter une figure avec scatter, d’abord quand j’ai mis ma commande scatter à l’extérieur de ma boucle i, il m’a seulement tracé le dernier vecteur, alors je l’ai mis à l’intérieur de cette boucle, ça a marché sans fixer l’échelle, mais en essayant de la fixer j’ai eu cette erreur

    ???
    Error in ==> scribe.colorbar.colorbar at 73
    h.methods('initialize_colorbar_properties',fig,ax);

    Error in ==> colorbar>make_colorbar at 226
    ch=scribe.colorbar(peeraxes,location,position,pvpairs{:});

    Error in ==> colorbar at 190
    [c,msg] =
    make_colorbar(peeraxes,location,position,pvpairs);

    Error in ==> extract_allcontour at 87
    caxis([-29 12]); colorbar;
    j'ai essayé sur une figure simple sans la boucle i et j'ai réussi à fixer l'échelle donc je ne comprends pas pourquoi ça plante dans mon cas

    voici mon code et merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    for n=1:nCourbes
        chn=int2str(n);
        idx = indices(1,n):indices(2,n);
        long2=long12(1,idx);
        lat2=lat12(1,idx);
        for i=1:length(idx)
        [val,ind_long(i)]=min(abs(lon(:,1)-long2(i)));
        val_lon(i)=lon(ind_long(i));
        [val,ind_lat(i)]=min(abs(lat(:,1)-lat2(i)));
        val_lat(i)=lat(ind_lat(i));
        valeurs_flux(i)=HF(ind_long(i),ind_lat(i));
        scatter(val_lon(i),val_lat(i),2,valeurs_flux(i))
        caxis([-29 12]); colorbar;
        hold on
        end  
    end

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 163
    Points
    53 163
    Par défaut
    Ton code devrait se "simplifier" comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    figure
    caxis([-29 12]);
    colorbar;
    hold on
     
    for n = 1:nCourbes
     
        chn = int2str(n);
        idx = indices(1,n):indices(2,n);
        long2 = long12(1,idx);
        lat2 = lat12(1,idx);
     
        for i = 1:length(idx)
            [val,ind_long(i)] = min(abs(lon(:,1)-long2(i)));
            val_lon(i) = lon(ind_long(i));
            [val,ind_lat(i)] = min(abs(lat(:,1)-lat2(i)));
            val_lat(i) = lat(ind_lat(i));
            valeurs_flux(i) = HF(ind_long(i),ind_lat(i));
        end
     
        scatter(val_lon,val_lat,2,valeurs_flux) 
     
        clear val_lon val_lat valeurs_flux
     
    end
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Points : 63
    Points
    63
    Par défaut
    merci beaucoup! enfin j'ai ma figure et elle est correcte
    par contre j'ai cette erreur qui se répète à chaque boucle
    ??? Error using ==> set
    Color value contains NaN, or element out of range 0.0 <= value <=
    1.0

    Error in ==> specgraph.scattergroup.refresh at 187
    set(p,'MarkerEdgeColor',color);

    Error in ==> specgraph.scattergroup.schema>LdoDirtyAction at 145
    refresh(h);

    Warning: Error occurred while evaluating listener callback.
    > In scatter at 90
    In axtract_cont_dut at 95
    bon l'important c'est que ça marche je pense mais si on arrive à la supprimer ça serait bien

Discussions similaires

  1. Problèmes avec inputdlg à l'intérieur d'une boucle
    Par laulau301090 dans le forum MATLAB
    Réponses: 3
    Dernier message: 26/04/2013, 20h25
  2. Return à l'intérieur d'une boucle for -> warning
    Par MicBeastKiller dans le forum C++
    Réponses: 38
    Dernier message: 11/06/2012, 21h34
  3. [Débutant] Choix de fonction à l'intérieur d'une boucle
    Par mdelvaux89 dans le forum MATLAB
    Réponses: 7
    Dernier message: 08/04/2009, 12h01
  4. [MySQL] Ecrire dans une table à l'intérieur d'une boucle
    Par zigzagbe dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/08/2008, 23h40
  5. Affectation de variable boucle FOR à l'intérieur d'une boucle WHILE
    Par Droïde Système7 dans le forum Débuter
    Réponses: 10
    Dernier message: 05/11/2007, 19h11

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