MATLAB: How to move the colorbar in a surf plot

colorbarMATLABsurf

When using the following code, the colorbar overlaps with the tick labels of the x-axis:
surf(peaks);
set(gca,'FontSize',28);
cb = colorbar;
I already tried to modify the x-position of the colorbar with:
pos = get(cb,'Position');
set(cb,'Position',pos + [0.05,0,0,0]);
This was unsuccessful since the whole axis is rescaled and even manually entering the retrieved original position values does not result in the original colorbar position. How can I move the colorbar to not overlap with the tick labels anymore?
Edit: The provided sample code is a simplified example and the increased fontsize is necessary for readability in my original code. My attempt to solve the problem was aimed at moving the colorbar further to the east.

Best Answer

The following answer was provided by Steve Schäfer from MathWorks Support and solves my problem (edited for readability):
Simply moving the colorbar object to right, by altering its Position(1) will not work, since it is then pushed out of the "visible" area, which is defined by the OuterPosition of the axes object. See documentation of Control Axes Layout for further information. The trick was to shrink the Position of the axes and make space in the visible area for the shifted colorbar. Look at the definition of TightInset, it should help you to understand how these control properties work:
f = figure;
s = surf(peaks);
ax = gca;
set(ax,'FontSize',28);
cb = colorbar('Location','eastoutside');
ax.Position = ax.Position - [0 0 .1 .1];
cb.Position = cb.Position + [.1 0 0 0];