MATLAB: Color a grid by using an intensity matrix

gridmatrixpcolor

Hi all! I need to color a grid according to the values of a specific matrix. In particular, I have a 5×5 matrix representing an intensity value (from 0 to 1) and each value A(i,j) of this matrix is related to a specific cell in the grid. The grid goes from 0 (meters) to 100 (meters)—> 0:20:100 for both axes. Thus, each 20m x 20m cell should have a color according to the matrix described above. I tried with pcolor(), imshow(), imagesc() and so on, but with bad results.
Can you help me? Thanks in advance!!! Giulio (Sapienza University of Rome)

Best Answer

What do you mean "bad results"? Can you explain or show what you're doing?
Either way, I'm going to take a guess that the problem is related to the fact that you know the intensities are between 0 and 1, but imagesc always scales to the range of the data. But using image won't work either, because it uses actual values to index into the colormap. If that's the issue, then here are a couple of ways around it:
z = rand(5);
x = 10:20:90;
image(x,x,cat(3,z,z,z))
This makes a 3-D array out of z, then makes a true-color image. Or:
figure
colormap(gray(64))
image(x,x,0.5+z*64), colorbar
which sets the colormap to use 64 colors, then simply expands the possible data range to match that (1 to 64).