Display image with non-linearly spaced axis.
4,9K téléchargements
Mise à jour 30 jan. 2012

Afficher la licence

UIMAGE(X,Y,C) displays matrix C as an image, using the vectors X and Y to specify the X and Y coordinates. X and Y may be unevenly spaced vectors, but must be increasing. The size of C must be LENGTH(Y)*LENGTH(X). (Most probably you'll want to display C' instead of C).

Contrary to Matlab's original IMAGE function, here the vectors X and Y do not need to be linearly spaced. Whereas Matlab's IMAGE function linearly interpolates the X-axis between X(1) and X(end), ignoring all other values (idem for Y), here UIMAGE allows for X and/or Y to be unevenly spaced vectors, by locally stretching the matrix C (ie, by duplicating some elements of C) for larger X and/or Y intervals.

Use UIMAGESC to scale the data using the full colormap. The syntax for UIMAGESC(X,Y,C,...) is the same as IMAGESC(X,Y,C,...).

Typical uses:
- Plotting a spatio-temporal diagram (T,X), with unevenly spaced time intervals for T (eg, when some values are missing, or when using a non-constant sampling rate).
- Plotting a set of power spectra with frequency in log-scale.

c = randn(50,20); % Random 50x20 matrix
x = logspace(1,3,50); % log-spaced X-axis, between 10 and 1000
y = linspace(3,8,20); % lin-spaced Y-axis, between 3 and 8
uimagesc(x,y,c'); % displays the matrix

Citation pour cette source

Frederic Moisy (2024). UIMAGE - UIMAGESC (https://www.mathworks.com/matlabcentral/fileexchange/11368-uimage-uimagesc), MATLAB Central File Exchange. Récupéré le .

Compatibilité avec les versions de MATLAB
Créé avec R2006a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Publié le Notes de version

Bug fixed when both X and Y axis are not linearly spaced (thank you Janti and Tim!!)

submissions UIMAGE and UIMAGESC
are now merged into a single zip