I have a small problem in saving data in a array. I want to save data in the form 10001010 <- 8 bits in a 2d array containing 100 rows and 100 columns. what i do now is
a = rand(100,100);
a = a * 127; // <<- this is done to make it 8 bits
To confirm what i have done i did a imshow to display the image.
When a is multiplied by 127 most of the grayscale pixels has turned to white but before the multiplication step it showed a nice grayscale image.
a = rand(100,100);
after a = a * 127; 
If you want 8-bit representation it’s actually 0->255 since image intensities are unsigned. Matlab checks which class the image is when using imshow, if it’s a double, the range 0->1 is expected. Hence you need to cast the image to uint8 after multiplying for it to show properly.