When you use image() or imagesc() or imshow(), MATLAB assumes you want "axis image", one side effect of which is to set the axis YDir to 'reverse'. It does this so that the "top" (lower row numbers) of the image show up at the top of the screen, because that is how people typically construct image arrays. Normally MATLAB follows Cartesian plotting conventions, where the low values are at the bottom of the screen with Y increasing upwards.
If you want your Y to increase from the bottom then you need to
set(gca, 'YDir', 'normal')
after you display your image. If this plots your image upside down from what you want, then you will need to ask to display flipud() of the image matrix,
imshow(flipud(YourArray))