MATLAB: Problem in setting Yaxis value

yaxis exponent

I am using MATLAB 2015a. After going through the Q&A I finally wrote the command lines to set the Yaxis values as exponent, but its not working.
Here is the code
x = linspace(0,5,1000);
y = 100*exp(x).*sin(20*x);
plot(x,y)
ax = gca;
ax.YAxis.Exponent = 2;
Its showing this error "
No appropriate method, property, or field 'YAxis' for class
'matlab.graphics.axis.Axes'.
Error in rough6 (line 32)
ax.YAxis.Exponent = 2;"
Please help me to convert the Yaxis value in desired exponent form.
Thanks

Best Answer

I don’t remember when that was introduced. It was obviously after R2015a.
One approach to a work-around:
x = linspace(0,5,1000);
y = 100*exp(x).*sin(20*x);
plot(x,y)
ax = gca;
% ax.YAxis.Exponent = 2;
yt = ax.YTick;
xpnt = 2;
new_tick_lbls = 10.^log10((10^-xpnt)*abs(yt)).*sign(yt);
ytlblc = sprintfc('%.0f',new_tick_lbls); % Undocumented: ‘sprintfc’; % Undocumented: ‘sprintfc’
ax.YTickLabel = ytlblc;
text(min(xlim), max(ylim)*1.05, sprintf('\\times10^{%.0f}', xpnt))
Experiment to get the result you want.