How does this code work? Decreasing error bar width using xdata
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
yogesh jain
2016-6-25
The coding part is not tough but it seems that it is following any particular algorithm which is a bit tough.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Errorbars 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!