Suppressing Live Script plotting figure inline
32 次查看(过去 30 天)
显示 更早的评论
I am plotting a figure from a Live Script using the
set(gcf, 'Visible', 'on');
option to make it appear in a separate, external window.
However, a copy of the figure still appears inline the Live Script which I would like to avoid. The figure should only appear externally (i.e. in a separate window, which it already does), and not get created inline too.
I have tried the following, none of which worked:
- Plotting the figure inside a separate .m function (being called from the Live Script)
- Creating the figure with visibility 'off'
- Forcing 'normal' window style when creating the figure, i.e. f = figure('WindowStyle','normal')
- Creating and plotting into a uifigure (copy still shows up inline)
- Saving the figure with its visibility turned 'off' and opening it again in a different instance of another Live Script. Upon opening, both the external and the inline figures are created.
EDIT: Example Live Script attached for reference.
2 个评论
采纳的回答
更多回答(1 个)
Matt J
2025-9-5
编辑:Matt J
2025-9-5
I don't think it's possible. However, you could shrink down the side bar area of the livescript where the figures are displayed, so that they aren't so visible,

4 个评论
Umar
2025-9-6
编辑:Umar
2025-9-6
Hi @Mate,
You mentioned:
"Would you be able to provide a short example of the 'wrap plotting in a function without returning any outputs'? I tried something resembling this, yet the inline figure was still created. Perhaps I missed something then."
Wrapping plotting in a function without returning outputs reduces workspace clutter but does not prevent the Live Script from capturing the figure inline—this is by design.
Minimal example:
function externalPlot(x,y)
if nargin==1, y=x; x=1:numel(y); end
h = findobj('Type','figure','Name','External Figure');
if isempty(h) || ~isvalid(h)
h = figure('Name','External
Figure','NumberTitle','off','WindowStyle','normal','Visible','on');
else
figure(h); clf(h);
end
plot(h,x,y,'.-'); grid(h,'on'); xlabel('X [s]'); ylabel('Y [y]'); title('Random plot');
end
Call from the Live Script:
externalPlot(1:10, rand(1,10));
Caveat: inline figures will still appear.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Function Creation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!