MATLAB: I can’t get the error-bar plot to work

errorplotting

I can't get this code to work:
function [fitresult, gof] = Linearized_plot_uncertainties(inverse_square_radius, time,er)
%%Fit: 'Linearized Fit'.
[xData, yData] = prepareCurveData( inverse_square_radius, time );
% Set up fittype and options.
ft = fittype( 'poly1' );
% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft );
% Plot fit with data.
figure( 'Name', 'Linearized Fit' );
h = errorbar(fitresult,'b', xData, yData,'.k',er); %THIS LINE gives me the error message
h(1).MarkerSize = 12;
h(2).LineWidth = 1;
legend( h, 'time vs. inverse_square_radius', 'Linearized Fit', 'Location', 'NorthEast' );
% Label axes
xlabel inverse_square_radius
ylabel time
grid on
hold on;
axis([0 10.5e5 0 40.5]);
I'm getting the following error message:
Error using errorbar (line 66)
Not enough input arguments.
Error in Linearized_plot_uncertainties (line 13)
h = errorbar(fitresult,'b', xData, yData,'.k',er);
When I replace the line with this (removing customization):
h = errorbar(fitresult, xData, yData,er);
I'm getting a different error message:
Error using errorbar (line 76)
Input arguments must be numeric or objects which can be converted to double.
Error in Linearized_plot_uncertainties (line 14)
h = errorbar(fitresult, xData, yData,er);

Best Answer

h = errorbar(fitresult,'b', xData, yData,'.k',er); %THIS LINE gives me the error message
As it rightfully should; matlab/ref/errorbar doesn't indicate it supports a fit object in the argument list; the syntax is given as one of
...
errorbar(x,y,err)
errorbar(x,y,neg,pos)
...
errorbar(___,linespec)
errorbar(___,Name,Value)
...
It's that you've got an object handle in the location for a coordinate array that is the reason for the various messages depending upon just which perturbation you chose.
hEB=errorbar(xData,yData,er,'.-b', ...
'MarkerFaceColor','k','MarkerEdgeColor','k','MarkerSize',12);
should come reasonably close to the result you were looking for.