Automatically update an image axes' CLim based on displayed portion
Updated 21 Feb 2018

View License

autoScaleImageCLim(hImage) automatically updates the specified image's axis CLim property to the 10th & 90th percentiles of CData values for the displayed portion of the image. This CLim is automatically updated whenever the image is updated, zoomed, panned or modified in any way.

autoScaleImageCLim(hImage, threshold) recalculates CLim based on a user-specified threshold (default: 10). For example, if threshold=5, then the 5% and 95% CData values are used for CLim. This threshold can be specified as either a number in the range [1-49] (indicating full percentage), or as a corresponding numeric fraction in the range [0-0.49].

hImage - handle to a Matlab image object (optional; default=current image)
threshold - threshold for setting CLim (optional; default=10)

autoScaleImageCLim() % auto-scale the current axes' image
autoScaleImageCLim(hImage,5) % auto-scale image using 5%-95% CData limits
autoScaleImageCLim(hImage,.07) % auto-scale image using 7%-93% CData limits

This code relies on undocumented and unsupported Matlab functionality.
It works on Matlab R2014b or newer, but use at your own risk!

Technical explanation:
A technical explanation of the code in this utility can be found on

Cite As

Yair Altman (2024). autoScaleImageCLim (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2017b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes

clarified that the utility is expected to work only on R2014b or newer (i.e., HG2, not HG1)