MATLAB: How to extract error data from a error plot

errorplot

I have an error plot, and I want to extract the data (x,y, and error values) from this. How do I do this?
Thanks

Best Answer

The below assumes that the handle of the axes containing the errorbar() is in the variable ax such as ax = gca;
h = findobj(ax, 'type', 'errorbar');
if isempty(h)
error('no errorbar found in axes designated by "ax"');
end
if numel(h) > 1
warning('more than one errorbar found; outputs will be cell array')
end
X = get(h, 'XData');
Y = get(h, 'YData');
YNeg = get(h, 'YNegativeDelta');
YPos = get(h, 'YPositiveDelta');
If you had called errorbar using the form
errorbar(vector_of_x, vector_of_y, vector_of_error_values)
then YNeg and YPos will have the same content, and that content will be the same as the vector of error values.
If you had called errorbar using the form
errorbar(vector_of_x, vector_of_y, first_vector_of_error_values, second_vector_of_error_values)
then YNeg will have the same content as first_vector_of_error_values, and YPos will have the same content as second_vector_of_error_values.