Tracer les coefficients d'une matrice

Bonsoir,
je vous embête encore avec scilab. J'ai une grosse matrice carrée a coefficients entiers et j'aimerais "tracer" type damier avec des cases dont la couleur change en fonction de la valeur.

Je ne vois pas comment faire.
Amédé.

Réponses

  • J'ai trouvé Matplot mais je ne suis pas convaincu
  • As-tu pensé à Excel ?
  • J'avais réussi à le faire en Matlab pour visualiser la convergence de la méthode QR et de celle de Jacobi le jour de mon épreuve de modélisation à l'agreg... il y a plus de 20 ans.
    Je n'ai, malheureusement pour toi, aucune idée de comment faire aujourd'hui.
  • Bonjour tout le monde,

    Tu as essayé comme ceci ?
    n = 10
    //A = grand(n,n,"nor",0,1)
    A = (1:n)'*ones(1,n)
    clf()
    surf(A') // attention, il faut plotter la transposée de ta matrice !
    
    a = gca()
    a.rotation_angles = [0,-90] // x en abscisses
    a.isoview = "on"
    gcf().color_map = rainbowcolormap(128) // help colormap // pour voir la liste des colormaps
    
    colorbar() // bonus : la légende
    
    124102
    124104
  • Désolé, je crois que ça ne marche pas avec `surf()`, parce que les cases de la grille ne correspondent pas aux entrées de la matrice.

    Il n'y a que $9\times 9$ cases, pour les $10\times 10$ entrées.

    Les entrées de la matrice se retrouvent aux arètes du quadrillage au lieu d'être au milieu des faces. :-(

    Ah non même pas... Je ne comprends pas exactement ce qui se passe. (en fait, si : on jette tout simplement à la poubelle la dernière ligne et la dernière colonne ! :-()

    Voici un exemple où on voit le problème :
    n = 10
    A = ((1:n)>n/2)'*((1:n)>n/5)
    clf()
    surf(A') // attention, il faut plotter la transposée de ta matrice !
    
    124108
  • Bonsoir,

    tout marche très bien merci.
  • Re salut,

    Bah non, ça ne marche pas très bien. Par exemple, pour une matrice $2\times 2$, ça donnerait qu'une seule case : celle du coefficient $a_{1,1}$.

    J'étais parti voter, et j'avais oublié le bricolage suivant, qui permet de vraiment plotter toute la matrice.

    Comme ça, ça marche.
    n = 4
    A = ((1:n))'*((1:2*n))
    //A = ((1:n)>n/2)'*((1:n)>9)
    function surfEtendu(A)
      [x,y]=size(A)
      B = zeros(x+1,y+1)
      B(1:x,1:y)=A
      surf(B') // attention, il faut plotter la transposée de ta matrice !
    endfunction
    clf()
    surfEtendu(A)
    
    124134
  • Je voulais dire pour ce que je souhaitais faire ça fonctionnait bien. Merci
Connectez-vous ou Inscrivez-vous pour répondre.