2010-08-18 6 views
5

나는 datetick2의 수정 된 버전을 MATLAB FEX에서 구현하려고합니다. 작은 날짜 범위에서 플롯을 확대하면 플롯의 시간 범위에 따라 일/월/년 등이 표시되지 않습니다. 그림의 왼쪽 하단 모서리에 주석으로 'dd-mmm-yyyy'형식의 시작 날짜를 넣고 싶습니다. 문제 없습니다. 끝났습니다.MATLAB에서 주석 핸들을 찾으려면 어떻게합니까?

그러나 사용자가 확대/축소 기능을 사용하여 다른 날짜 범위를 선택하면 다음으로 업데이트하고 싶습니다. 더 많은 핸들을 전달하는 대신 주석을 찾고 싶습니다. 그러나 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

는 먼저, 다음 개체를 찾기 위해 FINDOBJ를 사용해보십시오, 'on'에 루트 'ShowHiddenHandles' property을 설정 다시 기본 'off'로 설정합니다.

+1

그래, 그게 다야. 주석을 추가하는 태그 속성도 추가되었습니다. – Doresoom

9

findobj 대신 FINDALL을 사용합니다. 숨겨진 핸들을 숨겨 둘 수 있기 때문에 사용합니다. findall에는 자식을 재귀 적으로 검색하는 핸들이 필요합니다. findall(0,'Tag','myTag') finds all objects tagged myTag (0 is the handle to root), findall (gcf, 'Tag', 'myTag')은 현재 그림 (오른쪽 태그가있는 경우 그림 자체 포함)과 연관된 객체 태그 myTag을 찾습니다.

+1

+1 : 나는 파인더에 대해 들어 본 적이 없다고 생각합니다! – gnovice

+0

+1 저 역시 새로운 것입니다. – Doresoom

관련 문제