The line below from your code is plotting 30 lines for each axis.
plot(ci,'LineWidth',1,'Color', [0 0 0.5],'LineStyle','--');
because ci is a 30x10 matrix and a line is being plotted for each column.
Perhaps ci(:,j) is the confidence interval range whereby the use of errorbar() will show confidence intervals. I think this is what you're pursuing.
patch([1:size(ci2,1),size(ci2,1):-1:1]', ci2(:), 'r', 'FaceAlpha', .1, 'EdgeColor', 'none')
errorbar(y,err) plots symetric error bars for each element of y.
patch() produces the patch object and you can set its color and transparency.
See the pages in the documentation for each funciton to learn how to change other properties.
An example of these lines applied to one of your subplots is below. Note the strange reversal of the patch CI toward the end of the plot. That's in your data so you'll have to decide if this is exected or not.
Note, this assumes ci2 contains the positions of the lower/upper CIs. If ci2 contains the *offsets*, then you'll need to add the ci2 to your y-values when calling the patch() function.