Plot in matlab con limiti diversi di colori colorbar/colormap

Alban Kita
Salve a tutti.

Sto cercando di plottare con imagesc una matrice su matlab e ho bisogno del vostro aiuto.

Il mio codice è il seguente:

load Corr_matrix_IMS_All_Riordinato_Uncorrelated.txt

Valore_vect=min(Corr_matrix_IMS_All_Riordinato_Uncorrelated);
Min_matrix=min(Valore_vect);
Valore_vect_max=max(Corr_matrix_IMS_All_Riordinato_Uncorrelated);
Max_matrix=max(Valore_vect_max);

imagesc(Corr_matrix_IMS_All_Riordinato_Uncorrelated)
colormap(gray(4))
colorbar
caxis([Min_matrix Max_matrix]);

Metto in allegato la figura che ottengo dal codice.

Il problema che riscontro riguarda i limiti dei colori. Mettendo 4 colori, matlab equispazia tra il valore minimo (circa -1.55) e valore massimo (1).

Io vorrei mettere quattro colori in scala di grigio nei seguenti intervalli: da -0.55 a 0; da 0 a 0.5; da 0.5 a 0.9; da 0.9 a 1.

Purtroppo sto tribolando da 2 giorni e spero in un vostro aiuto.

Grazie mille in anticipo.


Risposte
Bbach

Bbach
Confermo che il modo più veloce per ottenere il risultato rchiesto è usare il [tt]colormapeditor[/tt].

Ti mostro un esempio di quello che si può fare
surf(peaks)
colormap(gray(100))
colorbar

Osserva che non ho diviso l'intervallo di colori in 4 parti ma in un numero elevato di parti.

Digito [tt]colormapeditor[/tt] nella command window.

Ora aggiungo delle tacche per creare gli intervalli voluti. Nota bene che la tacca memorizza il colore in cui è stata creata.
Quindi creo una tacca subito a destra della prima tacca nera e la trascino fin dove voglio per creare il primo intervallo. Poi creo una tacca subito a destra di questa e la trascino e così via.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.