禁止Matlab自动获取焦点

时间:2013-06-28 10:27:54

标签: matlab

我有以下问题:在我的matlab代码中,我使用像

这样的语句
figure(1)

更改某些数据的目标数字。问题是,在这个matlab之后,系统会将焦点放在窗口上。

当我在后台运行一个大脚本并尝试在我的计算机上执行smt时--Matlab总是把注意力集中在自己身上而且我不能正常做smt。

是否有禁止Matlab执行此操作的扫管笏?我在Linux Ubuntu工作。

提前致谢。

4 个答案:

答案 0 :(得分:6)

Daniel Eaton

"Smart"/Silent Figure

答案 1 :(得分:2)

您可以通过在创建时使图形不可见(可见关闭)来实现此目的,并且只在您想要显示它时才使其可见。

例如:

f = figure('Visible', 'off'); %create an invisible figure
plot(rand(1,15)); %plot some stuff to it.

saveas(f, 'test.png', 'png'); %write out the image as a png
close(f); %destroy the figure

或者:     set(f,'Visible','on'); %显示以前不可见的数字

注意,如果将图形保存为Matlab .fig文件,它还会保存它不可见的事实,这可能有点令人困惑。

答案 2 :(得分:0)

这是未经测试的,但根据智能人物的链接,看起来你需要做的就是让你的身材不是偷的焦点是这样的:

set(0, 'CurrentFigure', h);

顺便说一下,如果你不知道,0就是“root”

答案 3 :(得分:-1)

在R2018a中,引入了图形属性“ WindowState”,请参见https://blogs.mathworks.com/pick/2018/07/13/maximize-your-figures/

使用此功能,您可以

set(0, 'DefaultFigureWindowState', 'minimized');

在运行实际脚本之前,这将导致所有“标准图解”都不会失去焦点,而是以最小化状态打开。

有些功能仍然会引起关注。我没有详细研究,但我相信它主要是自动绘图功能,例如psd,hist等,没有输出参数。如果您自己打plot,就可以了。