MATLAB: Isn’t the loop running? (using strcmpi, trying to find a handle for the text)

axisfor loopgethandleMATLABpropertiessetstrcmpitext;

Hello
Here is part of my code, I wanted to find an handle for the text… so I created a loop that runs all over the axis' children and looks for the text's handle.
% code
%get text handle
textH=get(axisH,'children')
for ii=1:length(textH)
if strcmpi(get(textH(ii),'type'),'text')
textH=textH(ii)
end
end
%set text properties
set(textH,'color','b','FontSize',20)
why isn't my loop running?

Best Answer

I don't know why your loop is not running. I suggest you try some debugging. Also you change the array you're looping over inside the loop, which is not good.
textH = get(axisH,'children') % should give a list of numbers
N = numel(textH) % I prefer numel over length
textH_KEEP = NaN
for ii = 1:N
str = get(textH(ii),'type') % debug

TF = strcmpi(str,'text') % debug
if TF
textH_KEEP = textH(ii)
end
end
textH_KEEP % should be NaN when no text handles are found
Related Question