MATLAB: Improving readability of Matlab graph

minortickscale plot graphticklabelsticklengthticksxtickxticklabelytickyticklabel

The plot generated by the following code appears with the ticks labelled 1 to 25 for the x axis and 0 to 20 for the y axis. I want the ticks to appear but not to be labelled. Does anyone have suggestions as to how I should modify the code?
x=linspace(0,10,100000000);
y = 4*(1-exp(-0.001*x/(1.05*10^-4)));
plot( x,y)
xlim([0 25])
ylim([-20 20])
set(gca,'xtick',-25:1:25)
set(gca,'ytick',-20:1:20)

Best Answer

Method 1: remove some X|YTickLabels
Add these lines to then end of your code after setting the axis limits and axis ticks.
The tickInterval variable defines the interval of ticks to display.
tickInterval = 4;
ax = gca();
ax.XTickLabel(~ismember(1:numel(ax.XTickLabel), 1:tickInterval:numel(ax.XTickLabel))) = {''};
ax.YTickLabel(~ismember(1:numel(ax.YTickLabel), 1:tickInterval:numel(ax.YTickLabel))) = {''};
Method 2: Use Minor Ticks
This method may not be available on all types of axes.
ax = gca();
ax.XTick = 0:5:25;
ax.YTick = -25:5:25;
ax.XMinorTick = 'on';
ax.XRuler.MinorTickValues = 0:1:25;
ax.YMinorTick = 'on';
ax.YRuler.MinorTickValues = -25:1:25;
Also see ax.XRuler.TickLength to change the tick lengths.