MATLAB: Bounding box around image

boximshow

I'm attempting to show an image within a plot, with a bounding box around the image. However, the following results in an image without a bounding box, despite the box being explicitly asked for:
clear
close all
% Create figure
fig1 = figure;
% Random plot
plot( (1:10), randi(10,1,10) )
% Create new axes within existing
axes('pos',[.1 .6 .5 .3])
% Load and show image
imshow('coins.png')
a1 = gca;
% Try turning box on and redrawing
a1.Box = 'on';
drawnow;
Any suggestions as to how this might be resolved? I'm hoping there's a simpler way than having to manually draw a box over the top…

Best Answer

Try this:
% Random plot
plot( (1:10), randi(10,1,10), 'LineWidth', 2)
grid on; % Optional
% Create new axes on top of the existing plot.
axes('Position',[.1 .6 .5 .3])
% Load and show image
imshow('coins.png')
axis('on', 'image'); % This is the KEY LINE OF CODE!
Also see this link to learn how to format your code. http://www.mathworks.com/matlabcentral/answers/13205#answer_18099