Как найти дескриптор аннотации в MATLAB?

Я пытаюсь реализовать модифицированную версию datetick2 из MATLAB FEX. Когда графики увеличиваются в небольшом диапазоне дат, день / месяц / год и т. Д. Не отображаются, в зависимости от диапазона времени на графике. Я хотел бы поставить «дд-ммм-гггг» дата начала отформатирована в виде аннотации в левом нижнем углу рисунка. Нет проблем, это сделано.

Однако затем я хочу обновить его, если пользователь выбирает другой диапазон дат с помощью функции масштабирования. Вместо того, чтобы передавать больше ручек, я хочу просто найти аннотацию. Однако findobj , похоже, не работает для типа hggroup, к которому относятся аннотации. Я использую это неправильно?

Вот пример кода:

>> times=now-[50:-5:0];
>> days=times-times(1);
>> plot(times,days)
>> datetick2()
>> xlabel('Date')
>> ylabel('Days')
>> title('Example')
>> initialdate=datestr(min(get(gca,'xlim')),'dd-mmm-yyyy');
>> txt=annotation('textbox', [.01,.01,.1,.05],...
                  'string',  initialdate,...
                  'Linestyle','none');
>> 
>> 
>> findobj('type','hggroup')

ans =

   Empty matrix: 0-by-1

>> get(txt,'type')

ans =

hggroup

>> findobj('type','axes')

ans =

  270.0034

Как вы можете видеть, findobj не работает, но если я использую дескриптор, который я определил в рабочей области, тип выдается прямо как hggroup .

5
задан Doresoom 18 August 2010 в 21:23
поделиться