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 :

Plot d'un chronogramme


Sujet :

MATLAB

  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut Plot d'un chronogramme
    Bonjour,

    voilà mon problème: j'ai les variables suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    largeur = 1;
    ecart = 6;
    nbOccurences = 5;
    Et je souhaite dessiner un "chronogramme" qui vaut 1 pendant "largeur" puis 0 pendant "ecart" et ce "nbOccurences" fois. Pour l'instant j'y parviens par exemple avec les valeurs ci-dessus ==> voir l'image jointe.

    Le problème est que mon code ne fonctionne que pour les nombres entiers, alors que "ecart" et "largeur" peuvent être des nombres décimaux.
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    longueurTotale = nbOccurences * (ecart + largeur);
    chronoData = zeros(1, longueurTotale);
    indice = 1;
     
    for i = 1:nbOccurences
        chronoData(indice:indice+largeur-1) = 1;
        indice = indice + largeur + ecart;
    end
    stairs(axesHandle, chronoData, 'b', 'LineWidth', 3);
    On voit que si ecart et/ou largeur sont décimaux, je me retrouve a donner des nombres décimaux en indice de mon vecteur...

    Mon idée était de multiplier ecart et largeur afin qu'ils deviennent des entiers (par exemple 1.56 => 156) car la valeur elle même importe peu (seule la proportion entre ecart et largeur m'intéresse), mais je trouve ça un peu compliqué et il y a peut-être un moyen beaucoup plus simple d'obtenir ce chronogramme?

    Merci d'avance pour votre aide.
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    plutot que d'utiliser stairs(y), privilégie stairs(x,y)comme ca tu construit un vecteur x en fonction de ecart et largeur et le vecteur y correspondant

    Fabien

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Excuse moi je ne comprends pas trop ce que tu veux dire, comment je construit mon vecteur X en fonction de ecart et largeur? Que vaut le vecteur Y?

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    au lieux de construire un vecteur Y avec des indices I calculés en fonctions de ecart et largeur, tu construis un vecteur Y (avec des indices implicites 1,2,3,...) et un vecteur X correspondant fonction de ecart et largeur
    comme ca, pas besoin de travailler sur des entiers

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    X = [0 1 5 6 11 12 ];
    Y = [1 0 1 0 1 0];
    stairs(X,Y);

  5. #5
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Super ça marche
    Merci

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

Discussions similaires

  1. Plot - Interface
    Par harris_macken dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 03/11/2006, 07h23
  2. chronogramme en actionscript
    Par tasko dans le forum Flash
    Réponses: 11
    Dernier message: 20/09/2006, 00h53
  3. chronogramme en actionscript
    Par tasko dans le forum Flash
    Réponses: 1
    Dernier message: 18/09/2006, 15h07
  4. Plot fonction surf dans plusieurs plans
    Par AppleGuy dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/06/2006, 17h59
  5. Plot avec différentes couleurs
    Par Rolle dans le forum MATLAB
    Réponses: 3
    Dernier message: 14/06/2006, 10h42

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