well, getting what I need does not require a lot of coding. For anyone interested, here is a quick example which does the trick when the focus is on the figure to be modified.
As soon as I have some time I'll turn it into a more complete function (unless something like this already exists).
% get ylim
yl=ylim;
% get order of magnitude
e=log10(yl(2));
e=sign(e)*floor(abs(e));
% get and rescale yticks
yt=get(gca,'ytick')/10^e;
% create tick labels
ytl=cell(size(yt));
for j=1:length(yt)
% the space after the percent gives the same size to positive and
% negative numbers. The number of decimal digits can be changed.
ytl{j}=sprintf('% 1.2f',yt(j));
end
% set tick labels
set(gca,'yticklabel',ytl);
% place order of magnitude
fs = get(gca,'fontsize');
set(gca,'units','normalized');
xl = xlim;
text(xl(1),yl(2),sprintf('x 10^%d',e),...
'fontsize',fs,'VerticalAlignment','bottom');