2016-06-13 5 views

Antwort

1

Hängt ein wenig davon ab, wie ausgefallen Sie wollen/müssen.

Wenn Sie wirklich wollen genau den gleichen Code wie der UI Rückruf verwenden dann müssen Sie untersuchen, wie die Callback-Funktionen im folgenden Verzeichnis/Paket verwenden:

MATLABROOT \ Toolbox \ shared \ spcuilib + matlabshared + scopes \ @UnifiedScope

Insbesondere ist printToFigureCallback.m der Code, der vom Rückruf aufgerufen wird. (Sie können einen Haltepunkt in den Code einfügen und den Debugger verwenden, um den Code zu durchlaufen, um zu sehen, wie es funktioniert.)

Es sieht so aus, als ob etwas wie das Folgende funktionieren sollte, aber es nicht, also werden Sie müssen einige Versuchs- und Fehleruntersuchungen durchführen, damit es funktioniert.

% 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) 

Alternativ kann ein einfacher, wenn auch möglicherweise weniger befriedigende Lösung, wäre folgendes zu tun:

% 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) 

Je nach Bedarf können Sie dann mit einigen der Einheiten haben zu spielen, um zu gewährleisten, die Größe zu verändern macht das Richtige.

+0

Für meine Anwendung schien das programmatische Drucken zu Abbildung übertrieben zu sein. Danke für diese interessanten Informationen, ich könnte es in einem anderen Fall verwenden. – Karlo

+0

Die erste gibt tatsächlich einen Fehler ("Undefinierte Funktion 'printToFigureCallback' für Eingabeargumente vom Typ 'double'."), Aber die zweite macht genau das, was ich will. – Karlo

Verwandte Themen