1

我有一个相当大的例程,可以运行几个小时。它在这里和那里创建一个图形,为其绘制一些东西并保存该图形。

由于我只有一台 PC,我想继续使用那台机器。问题是,每当制作一个新图形时,MATLAB 就会再次成为活动应用程序。有什么方法可以告诉 MATLAB 或 Windows 不应允许 MATLAB 将自身设置为活动状态?

我看到一种可能性是完全在后台运行 MATLAB 脚本(就像那样)。但这有点太无监督了,因为我希望能够切换到 MATLAB 窗口并检查命令窗口的输出。

有任何想法吗?如果有一个针对 Windows 的通用解决方案可以防止其他应用程序变为活动状态也很酷!

4

5 回答 5

1

您可以按以下方式重载图形函数,以防止图形弹出:

a = figure('visible','off');
于 2011-02-23T12:44:53.717 回答
1

我不想说显而易见的,但是您始终可以将要绘制的数据存储到最后。

现在,您将告诉我其中一些数据是子程序,不会传回主程序。好的。因此,解决方案是编写一个“ ”类,其方法将数据、 (对于 3D、散点图等)、轴标签字符串等Store_Plot_Data写入内存。然后您将创建一个实例@plot_function_name这个类在你的主例程中,并确保这个实例对所有子例程的可见性,你可以执行以下任何操作:

  1. 使用global变量作为您的单个实例......好吧,不是那么优雅,

  2. 实现单例模式,或

  3. 将句柄传递给“ Store_Plot_Data”类的一个实例的所有子例程。

于 2011-02-25T03:07:09.793 回答
0

如果有一个针对 Windows 的通用解决方案可以防止其他应用程序变为活动状态也很酷!

在 Windows 7 中,这对我有用:

http://pcsupport.about.com/od/windowsxp/ht/stealingfocus02.htm

将“HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout”设置为 30d40(十六进制)。

于 2014-01-22T10:07:23.730 回答
0

如果您希望不显示所有数字。

set(0,'defaultFigureVisible','off'); 
于 2015-09-04T15:18:38.150 回答
0

在脚本的开头执行以下操作:

set(0, 'DefaultFigureVisible', 'off');
set(0, 'DefaultFigureWindowStyle', 'docked');

停靠 Matlab 图形窗口并在 Matlab 前面最大化您正在使用的任何其他应用程序(Excel、Word 等)。

然后您可以继续工作,而不会被您脸上闪烁的数字打断。

于 2016-06-18T19:58:24.947 回答