2016-06-13 1 views

답변

1

원하는대로/원하는지 조금씩 다릅니다.

당신이 정말로 당신이 다음 디렉토리/패키지에 콜백 함수를 사용하는 방법을 조사하는 데 필요한 UI 콜백과 정확히 동일한 코드를 사용하려면 :

MATLABROOT의 \ 도구 상자 \ 공유 \ spcuilib + matlabshared + scopes \ @UnifiedScope

특히 printToFigureCallback.m은 콜백에서 호출하는 코드입니다. 코드에 중단 점을 넣고 디버거를 사용하여 코드를 단계별로 실행하여 코드가 어떻게 작동하는지 확인할 수 있습니다.

다음과 같은 내용이 나타나지만 그렇게하지는 않습니다. 시행 착오를위한 조사가 필요합니다. 또한

% Get the name of the Scope of interest 
scopeName = get_param(gcb,'Name'); 
% Find the Scope (which is really just a figure window) 
hs = findall(0,'Name',scopeName); 
% Print to a figure. 
printToFigureCallback(h.UserData) 

, 쉽게, 아마도 덜 만족스러운 해결책 있지만, 다음을 수행하는 것입니다 :

% Get the name of the Scope of interest 
scopeName = get_param(gcb,'Name'); 
% Find the Scope (which is really just a figure window) 
hs = findall(0,'Name',scopeName); 
% Create a new target figure 
hf = figure('Position',get(hs,'Position')); 
% Get the handle to the panel containing the plots 
hp = findobj(hs.UserData.Parent,'Tag','VisualizationPanel'); 
% Copy the panel to the new figure 
copyobj(hp,hf) 

요구 사항에 따라 다음 보장하기 위해 단위들과 함께 놀러 할 수 있습니다 그 그림 크기를 조정하는 것은 올바른 일을합니다.

+0

내 응용 프로그램의 경우 프로그래밍 방식으로 그림을 인쇄하면 과도한 것처럼 보입니다. 이 흥미로운 정보를 주셔서 감사합니다. 다른 경우에도 사용할 수 있습니다. – Karlo

+0

첫 번째 오류 (실제로는 'double'유형의 입력 인수에 대해 '정의되지 않은 함수'printToFigureCallback ')가 발생하지만 두 번째 매개 변수는 내가 원하는 것을 정확하게 수행합니다. – Karlo