How do I programmatically print scope to a figure?

9 visualizzazioni (ultimi 30 giorni)
Gaddiel Kamto
Gaddiel Kamto il 29 Nov 2022
Commentato: cr il 5 Dic 2022
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 Commenti
Mathieu NOE
Mathieu NOE il 5 Dic 2022
why would you need to delete the 'To Workspace' blocks ?

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by