Matlab plot de matrice et couleur

hbcrayon -  
 Utilisateur anonyme -
Bonjour à tous

J'ai 21 vecteurs de données de 11 valeurs pour chacune des 21 lignes de la représentaiton si dessous.
Toutes les valeurs sont comprises entre 0 et 10.

|0 1 2 3 4 5 6 7 8 9 10
|0 ............................. 10 Je dois me servir de Matlab pour en faire une représentation graphique.
|0 ............................. 10
|0 ............................. 10 Mon idée, c'est d'associer chaque valeur à une couleur sur une échelle
|0 ............................. 10 de 1 à 10 et ensuite de plotter les couleurs dans un graph de 21 lignes
|0 ............................. 10 et 11 colonnes.
|0 ............................. 10 J'ai besoin d'aide parce que je ne sais pas ni comment faire pour
|0 ............................. 10 construire une matrice avec mes vecteurs (ce qui je préssens serait
|0 ............................. 10 plus simple à plotter que 21 vecteurs) ni comment associer une valeur
|0 ............................. 10 à une échelle de couleur qui serait valable pour mes valeurs entre 0
|0 ............................. 10 et 10. (je n'ai pas la moindre idée des fonctions que je dois utiliser ni de
|0 ............................. 10 comment les utiliser)
|0 ............................. 10
|0 ............................. 10 Si une bonne âme a le courage de m'aider en ce jour férié je lui en serai
|0 ............................. 10 très reconnaissant(e).
|0 ............................. 10
|0 ............................. 10 Merci d'avance et j'espère que le petit schéma à gauche sera assez clair
|0 ............................. 10 pour que ceux qui s'interesse à mon problème y comprenne quelque
|0 ............................. 10 chose.
|0 ............................. 10
|0 1 2 3 4 5 6 7 8 9 10


Hélène

1 réponse

Utilisateur anonyme
 
Salut,

Les vecteurs sont prédéfinis ? Ils sont constants ?

cad chaque ligne est organisée par ordre croissant de 0 à 10 ?

@ +
0
hbcrayon
 
bah non malheureusement ce serait trop simple.
En fait au départ il s'agit d'un calcul de l'équation de Laplace. Mais les valeurs sont toutes comprises entre 0 et 10. Les "..." remplacent les valeurs calculées par un programme en fortran juste avant.

Je veux juste les représenter sous forme d'un graphe en Matlab parce que c'est que la consigne me demande.
Actuellement j'ai une matrice V(11,21) contenant toutes les valeurs à plotter sur un graph dont je ne sais p)as comment faire pour le plotter justement... malheureusement, d'où mon appel à l'aide !!!

Hélène
0
Utilisateur anonyme > hbcrayon
 
Dans ce cas, tu dois soit :

* Définir les éléments de vecteur un par un : simple affectation

V(1,1)= ...
V(1,2)= ...
.
.
.
.
.
.
.
.
V(21,11)=...


Attention la notation sous Matlab est inversée ! ==> V(num de la ligne,num de la colonne)

* Soit faire une lecteur du fichier contenant les données : ceci dépend de la format du fichier que tu as et l'affichage des données dans le fichier.

Maintenant, je voudrais avoir des explications sur la manière du plot :

Est ce que c'est ça ? (exemple)

1  1  2  0 .........
2  0  8  6 .........
.
.
.
.
.
.
.
21  5  6  8 ..........
    1  2  3 .. .. .. .. .. .. .. .. .. .. .. .. 11


Avec chaque élément de la matrice associé à une couleur dans l'affichage, c'est ça ?

Et les couleurs, c'est toi qui les définis ?

De retour demain :)

Bonne nuit !
0
hbcrayon > Utilisateur anonyme
 
Merci pour la première partie.

Au niveau du plot , c'est un tout bête rectangle avec 21 lignes et 11 colonnes. Et j'aimerai bien que chaque valeur prenne une couleur dans une échelle de couleur (prédéfinie c'est moins compliqué) de manière à ce que visuellement ce soit évident que le potentiel croit ou decroit en ce point là.
Mais cela necessite de non plus affecté un point à une valeur mais une "case" parce que sinon c'est trop fin pour voir le point.
En cherchant un peu j'ai trouvé la fonction "contour(ma_matrice)" qui fait des lignes verticales de couleurs différentes (du bleu foncé pour les plus petites valeurs au rouge pour les plus grandes). Moi j'aimerai la même chose mais en couleur partout sur le graph...
Peut-être en faisant un interpolation des valeurs entre les points puis en les plottant mais je ne sais pas avec quoi du coup...

Merci de ton aide,
Hélène
0
Utilisateur anonyme > hbcrayon
 
Re,

J'ai compris ce que tu veux faire :)

Je me rappelle qu'il y a une fonction sous Matlab pour ce type de problème (représentation des champs E et H), mais je me rappelle plus de son nom exacte. Cependant, j'ai bricolé une méthode avec la commande imshow (tape doc imshow dans la console pour avoir l'aide détaillée)

Commençons par créer la matrice de mappade des couleurs (j'ai pris le bleu) :

aux=[0:0.1:1];
map=[zeros(11,1) zeros(11,1) aux'];


Puis l'affichage :

imshow(V,map,'InitialMagnification',3000)


La valeur 3000 correspond à l'agrandissement de l'image. Si tu auras une alerte (warning) comme quoi la valeur de l'agrandissement est trop grande par rapport à ton écran, alors diminue-la.

Si tu as encore des questions, n'hésite pas.

@ +
0