I want to scale each pixel width and height in imagesc but not use pcolor command

10 views (last 30 days)
Hello,
I want to scale each pixel width and height in imagesc but not use pcolor command. The reason I don't want to use pcolor is it plots the center of each (x1-x2) and (y1-y2). Is there any adjustments in imagesc that plot an image with different pixel sizes according to x and y values?
Thanks Farz

Accepted Answer

Walter Roberson
Walter Roberson on 17 Aug 2016
imagesc() accepts 'XData' and 'YData' parameter, which together allow you to control the data coordinates of the center of the lower-left and upper-right pixels. The axes properties XLim, YLim, DataAspectRatio, Position, and Units then work together to determine the mapping of data coordinates to physical screen coordinates.
For example if you had arranged for a square plotting box area, and you had a square data array, then using imagesc() 'XData' [0 10], 'YData', [0 20] would place the center of the lower left at [0 0] and the center of the upper right at [10 20] which would have the effect of making the Y scale twice as large as the X scale for the image.
  5 Comments
Walter Roberson
Walter Roberson on 19 Aug 2016
I = rand(32,32); imagesc(I, 'XData', [.5 32.5], 'YData', [.5 65]); axis image
The pixels that come out will not be square.
Farz Tak
Farz Tak on 19 Aug 2016
Thanks but as you see this scale the width and height of the whole plot. What I am looking for is what that can draw each pixel based on its x and y (like what we have in all 1-D plots).

Sign in to comment.

More Answers (0)

Categories

Find more on Images in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!