How do I programmatically print scope to a figure?

4 次查看(过去 30 天)
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 个评论
Mathieu NOE
Mathieu NOE 2022-12-5
why would you need to delete the 'To Workspace' blocks ?

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by