How to output matrix grayscale?

I am trying to output my matrix grayscale with imshow(), but its looks like gradient.
My code is:
s=4;
A=256;
N=200;
i=1:N;
r=0.1*(i-N/2);
f=exp(-r.^2/2/s^2);
M=A*(f'*f);
imshow(M,[]);
Please, help me to find a solution to this problem

1 Comment

"matrix grayscale with imshow(), but its looks like gradient"
Can you re-read the statement again and explain more? graysclae is scale range (shaded variation), where as gradient is derivative?

Sign in to comment.

 Accepted Answer

This one?
imagesc(M);

3 Comments

That outputs colorful M , but I need to output it grayscale with imshow
No, you don't need to use imshow to get the matrix in gray-scale. You can set the colormap to gray. You can also read the help and documentation to imshow to learn how that functions works, particularly with respect to intensity-scaling of inputs with different data-types...

Sign in to comment.

More Answers (1)

You could use imagesc instead of imshow. Combined with colorbar you get a neat display of your matrix. Since you asked for gray-scale, you'll also have to set the colormap, so something like this:
imagesc(M)
colorbar
colormap(gray)
HTH

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!