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

Scilab Discussion :

Dessiner une matrice grâce à la fonction Matplot


Sujet :

Scilab

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Dessiner une matrice grâce à la fonction Matplot
    Bonjour,

    Je souhaiterais tracer une matrice sous la forme d'un quadrillage de couleurs.

    Pour vous donner une idée, dans l'aide de scilab ils expliquent que pour la matrice M = [1,2,3 ; 4,5,6] la commande matplot(M) renvoie le quadrillage suivant :
    https://help.scilab.org/docs/5.4.0/en_US/Matplot_1.png

    Mon problème est le suivant :

    Supposons que nous avons une matrice 20x20 remplie aléatoirement avec des nombres réelles.

    M = rand(20,20);

    Je souhaiterais obtenir cette matrice sous la forme d'un quadrillage où plus une valeur est lointaine de zéro plus elle est noire et plus elle est proche de 0 plus elle est blanche.

    Ainsi je pourrai obtenir un quadrillage me permettant de visualiser où se trouvent les plus grandes et les plus petites valeurs de ma matrice grâce à différentes nuances de gris.

    Je vous remercie par avance pour votre aide.

    P.S. : il me semble malheureusement que la fonction matplot ne prends en compte que des matrices à coefficients entiers.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    C''est possible en rendant justement ces valeurs entières dans l'intervalle [1 256] :
    et prenant la palette de couleur en niveaux de gris graycolormap, d'autant de niveaux, que l'on inverse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fig = gcf();
    cmap = graycolormap(256);
    fig.color_map = cmap($:-1:1,:);
    Il reste alors à afficher notre matrice M :

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Mille mercis Winjerome,

    Votre message m'ait d'une très grande aide.
    Vous venez de me faire comprendre qu'il faut donner à chaque valeur de la matrice une valeur correspondant à celle de l'échelle de couleurs utilisée.

    Votre code fonctionne à la perfection.

    Encore merci !

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

Discussions similaires

  1. MAJ d'une matrice carrée en fonction d'indices
    Par Grasshoper dans le forum MATLAB
    Réponses: 3
    Dernier message: 29/06/2013, 20h25
  2. Intégration d'une matrice contenant des fonctions
    Par Keudon dans le forum MATLAB
    Réponses: 2
    Dernier message: 18/05/2012, 15h55
  3. [Débutant] Charger un fichier texte dans une matrice de nombres (fonction load).
    Par Invité dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/07/2010, 16h54
  4. Dessiner une bande dans une matrice
    Par S4sha dans le forum MATLAB
    Réponses: 4
    Dernier message: 23/11/2006, 13h56
  5. Passer une matrice comme paramètre d'une fonction
    Par Rniamo dans le forum Langage
    Réponses: 8
    Dernier message: 16/07/2006, 20h55

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