MATLAB: предотвращение активации фигур - PullRequest
1 голос
/ 23 февраля 2011

У меня довольно большая рутина, которая может длиться пару часов.Здесь и там он создает фигуру, строит для нее что-то и сохраняет эту фигуру.

Поскольку у меня только один компьютер, я бы хотел продолжить работу с этим компьютером.Проблема в том, что всякий раз, когда создается новая фигура, MATLAB снова становится активным приложением.Есть ли какой-нибудь способ сказать MATLAB или Windows, что MATLAB нельзя разрешить устанавливать себя активным?

Я видел, что одна возможность - полностью запустить скрипт MATLAB в фоновом режиме ( как этот ).Но это немного слишком без присмотра, поскольку я хотел бы иметь возможность переключиться в окно MATLAB и проверить вывод в командное окно.

Есть идеи?Если есть общее решение для Windows, которое препятствует тому, чтобы другие Приложения стали активными, также было бы здорово!

Ответы [ 5 ]

1 голос
/ 25 февраля 2011

Я не хочу констатировать очевидное, но вы всегда можете хранить данные, которые хотите построить, до конца.

Теперь вы скажете мне, что некоторые из этих данных являются подпрограммами и не 'не возвращаться к основной рутине.ХОРОШО.Таким образом, решением этой проблемы было бы написать класс "Store_Plot_Data" с методом, который записывал бы в память данные, @plot_function_name (для 3D, разброс и т. Д.), Строки меток оси и т. Д. Затемвы бы создали один экземпляр этого класса в своей основной подпрограмме, и чтобы обеспечить видимость этого одного экземпляра для всех подпрограмм, вы можете выполнить любое из следующих действий:

  1. использовать переменную global в качествеваш единственный экземпляр ... ОК, не очень элегантно,

  2. реализует шаблон Singleton , или

  3. , пропускает всеобрабатывает дескриптор этого одного экземпляра класса "Store_Plot_Data".

1 голос
/ 23 февраля 2011

Вы можете перегрузить функцию рисунка следующим образом, чтобы предотвратить появление фигуры:

a = figure('visible','off');
0 голосов
/ 18 июня 2016

В начале вашего скрипта выполните:

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

Закрепите окно рисунка Matlab и разверните любое другое приложение (Excel, Word и т. Д.), С которым вы работаете, перед Matlab.

Тогда вы можете продолжать работать, не прерываясь мигающими цифрами на вашем лице.

0 голосов
/ 04 сентября 2015

Если вы хотите, чтобы все цифры не отображались.

set(0,'defaultFigureVisible','off'); 
0 голосов
/ 22 января 2014

Если есть общее решение для Windows, которое предотвращает Приложения, которые станут активными, тоже будут классными!

В Windows 7 это работало для меня:

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

Установите для "HKEY_CURRENT_USER \ Панель управления \ Рабочий стол \ ForegroundLockTimeout" значение 30d40 (шестнадцатеричное).

...