The axis image command adjusts the ratio of the image axis. Thus, in principle, if you adjust the relationship between two graphs in the same ratio, it will do what you want.
There is one caveat; the image is inherently 3 times wider or higher than the graphics, because you built it on a 3x3 subnet, versus 1x3 for the top and 3x1 for the right sections. So you have to divide the x or y ratios of the graphs by 3.
Code example:
clc, clf % generate some bogus data ypion = rand(500,1); Ppion = 450*rand(500,1); xpoz = rand(500,1); Ppoz = 450*rand(500,1); % Load photo photoSub = subplot(4,4,[5,6,7,9,10,11,13,14,15]); load mandrill photo = imagesc([X,X]); colormap(map) axis image photoAxs = gca; photoAxsRatio = get(photoAxs,'PlotBoxAspectRatio') % right plot subplot(4,4,[8,12,16]); plot(Ppion,ypion,'k.'); rightAxs = gca; axis tight % upper plot subplot(4,4,[1 2 3]); plot(xpoz,Ppoz,'k.'); topAxs = gca; axis tight % adjust ratios topAxsRatio = photoAxsRatio; topAxsRatio(2) = photoAxsRatio(2)/3.8; % NOTE: not exactly 3... set(topAxs,'PlotBoxAspectRatio', topAxsRatio) rightAxsRatio = photoAxsRatio; rightAxsRatio(1) = photoAxsRatio(1)/3.6; % NOTE: not exactly 3... set(rightAxs,'PlotBoxAspectRatio', rightAxsRatio)
This gives the following result:

Just for verification, change photo = imagesc([X,X]); on photo = imagesc([X;X]); gives the following:

Please note that I did not divide the coefficients by 3 exactly; it came out only OK, if I used factors closer to 4. I do not know why this is so; AFAIK, factor 3 should do the trick ...
Well, at least you have something to work with. :)