Description 
function H=labelEdgeSubPlots(xl,yl,onlyBottom)
Purpose
If all subplots have the same quantities on the x and y axes then
there's no point labeling all of them. Often it looks neater to
simply have y labels only on the plots along the left hand
edge and x labels only on the plots along the bottom. This
function does this automatically for the current figure.
Inputs
xl  a string specifying what to label the x axes.
yl  a string specifying what to label the y axes.
onlyBottom  by default this is zero and the function adds an
xaxis to appropriate plots from the penultimate row
if the bottom row of plots is incomplete. set
onlyBottom to 1 to suppress this behaviour.
* in addition: onlyBottom can be a vector of axis handles to
be processsed.
Outputs
H  a structure containing handles to the x and y axis labels
Example
clf
for i=1:5
subplot(2,3,i)
x=[0:10]; y=1+0.01*x.^3+randn(size(x))*0.2;
plot(x,y,'ok'), xlabel('will be removed')
end
H=labelEdgeSubPlots('beer [pints]','faux pas');
%or:
H=labelEdgeSubPlots('beer [pints]','faux pas',1);
%One can also do:
set(H.xlabels,'color','red','fontweight','bold')
%proccess only some subplots
ax=[];
for i=1:25
subplot(5,5,i), box on
if mod(i,5)==1, ax=[gca,ax]; end
end
labelEdgeSubPlots('X','Y',ax);
Rob Campbell  January 2009
