2016-02-18 6 views
0

Hey j'ai deux grandes matrices 400x400. Que je veux créer en un heatmap/colormap. Code actuel:Création d'un heatmap/colormap dans Matlab, en mélangeant deux couleurs

res = matrix_1*256/2 + matrix_2*256/2; 
%res = res -max(max(res)); 
HeatMap(res) 
surf(res,'EdgeColor','none'); 
view(0,90); 
colormap(gray); 
colorbar 
disp('done'); 

où la fonction heatmap tout le monde peut rechercher. Mais pour donner une visualisation de la seconde, il en résulte: enter image description here

Ceci cependant ne me laisse pas savoir quelle matrice est dominante. Mais seulement que les deux sont dominants (blancs), les deux ne sont pas dominants (obscurs). Je voudrais faire un complot où j'utilise des données fusionnées. Par exemple. Matrice 1 est nuance de rouge et Matrix 2 est nuance de vert:

rgb = [matrix_1 (i, ii), matrix_2 (i, ii), 0]

alors je veux faire un tracé 2D utilisant la couleur représentée par rgb. Est-ce possible ? J'ai regardé faire mon propre colormap (mais vous deviné avec de bons résultats).

J'ai trouvé des solutions comme this (how-to-create-an-interpolated-colormap-or-color-palette-from-two-colors) et create-a-colormap-in-matlab, mais comment puis-je spécifier une couleur spécifique pour chaque point dans un tracé 2D?

Répondre

1

Comme ceci:

RGB = cat(3, matrix_1, matrix_2, zeros(size(matrix_1))); 
imshow(RGB) 

Maintenant, le tableau est noir ne sont ni dominent, rouge où matrix_1 est, mais matrix_2 n'est pas, vert où matrix_2 est, mais matrix_1 n'est pas et jaune où ils ont tous deux dominent.

Si vous voulez, vous pouvez même convertir ce retour à une image indexée et obtenir les colormap que les couleurs de cette façon à l'aide rgb2ind puis créer une parcelle de surface à l'aide de votre res original pour les hauteurs (notez qu'il n'y a plus besoin à l'échelle cela) et votre nouvelle image indexée (ind) pour spécifier la hauteur par

res = (matrix_1 + matrix_2)/2; 
[ind, map] = rgb2ind(RGB); 
surf(res, ind, 'EdgeColor','none'); 
colormap(map) 
colorbar 
+0

les couleurs qui ne sont plus enitrely goverened Même si vous avez dit pas sûr! C'est sur! Thx Mais les extraits fonctionnent pour différents scénarios. :) – JTIM