Hi Alan,
To get the color limits same as caxis, create a map of matrix with 3 columns and desired number of rows by using randi() function.
If the input data is double then normalize the map matrix. This map matrix can be given to the imwrite function to get the image in the required color limits
map = randi([min(caxis),max(caxis)],<desired no. of rows>, 3);
map = map - min(map(:));
map = map/max(map(:));
imwrite(getframe(gcf).cdata, map,'myfilename.png');
You can refer the following documentations for better understanding of
Hope this helps!