How does this code work? Decreasing error bar width using xdata

2 vues (au cours des 30 derniers jours)
Gaibo Zhang
Gaibo Zhang le 24 Juin 2016
Commenté : yogesh jain le 25 Juin 2016
So I was looking online for a way to decrease error bar width on R2014a and found some code that works perfectly by a David Szotten. However, I still don't understand xdata and how it was used here to achieve what we wanted. Can someone explain this line by line? Here it is reproduced:
function removeErrorBarEnds(hErrBar)
%removeErrorBarEnds
% removeErrorBarEnds(hErrBar) removes the lines above/below errorbars
% generated by the MATLAB function hErrBar = errorbar()
% david szotten
% use length of xdata to find the right handle
% there may be an easier way to do this
dataLen = length( get(hErrBar, 'xdata') );
% objects to try, one of this is the errorbars
candidateList = findall(hErrBar);
for candidate = candidateList(:)'
candLen = length( get(candidate, 'xdata') );
% found it
if candLen == 9 * dataLen
xOrg = get(candidate, 'xdata');
yOrg = get(candidate, 'ydata');
% we only want the first 3 out or every 9
valuesToExtract = find( kron( ones(1,dataLen), [ones(1,3) zeros(1,6)] ) );
xNew = xOrg(valuesToExtract);
yNew = yOrg(valuesToExtract);
set(candidate, 'xdata', xNew);
set(candidate, 'ydata', yNew);
end
end
  1 commentaire
yogesh jain
yogesh jain le 25 Juin 2016
The coding part is not tough but it seems that it is following any particular algorithm which is a bit tough.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Errorbars dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by