How do I programmatically print scope to a figure?

3 views (last 30 days)
Hello,
I am trying to do what this button does from matlab
After some research in the online community, that is the only way I found to extract the data used by the scope to plot the lines, i.e. by getting the figure handles and looking into the axes children. Haven't found a way to do the same directly through the scope, which is why I am trying to copy the scope to a figure.
I found these set of commands online which does something similar,
% 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)
but the resulting figure no longer has the XY data when I try
findall(hf,'Type','line') or
findall(hf,'Type','stair')
Note that the above command works on the manually created figure (by clicking the 'Print to Figure' button)
Thanks
  4 Comments
Mathieu NOE
Mathieu NOE on 5 Dec 2022
why would you need to delete the 'To Workspace' blocks ?

Sign in to comment.

Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!