Могу ли я изменить приглашение в MATLAB? - PullRequest
12 голосов
/ 19 февраля 2011

Я никогда не работаю с графическим интерфейсом и всегда нахожусь внутри терминала (также в полноэкранном режиме, поэтому без заголовка), установленного с параметром -nodesktop -nodisplay.У меня также есть разные серверы, к которым я подключаюсь для запуска matlab, и у каждого из них есть свои ограничения на использование вычислительных ресурсов.Поскольку трудно вспомнить, на каком сервере я работаю, особенно если у меня открыто несколько сеансов, мне было интересно, смогу ли я изменить приглашение для отображения имени сервера.Как ни старайся, я не смог найти ресурс, который объясняет, как это сделать (я начинаю думать, что Mathworks его не поддерживает).Я знаю, что в качестве обходного пути можно было бы просто написать вызов функции к system('hostname') и поместить функцию в путь, так что это почти так же просто, как набрать pwd, чтобы найти каталог.Я хотел бы знать, есть ли что-то более элегантное.

1 Ответ

12 голосов
/ 19 февраля 2011

На MathWorks File Exchange имеется сообщение, которое может сделать это для вас: setPrompt от Яир Альтман .Используя его в R2010b, я заметил, что получаю предупреждающее сообщение:

Warning: Possible deprecated use of set on a Java callback. 
> In setPrompt at 115

, которое мне удалось подавить с помощью функции warning, например:

warning('off','MATLAB:hg:JavaSetHGProperty');

А вот как я изменил приглашение на имя хоста, используя функцию system:

>> [~,systemString] = system('hostname');
>> setPrompt([deblank(systemString) '>> ']);
P11-4504>>

Используется функция deblankудалить завершающий пробел (в данном случае символ новой строки) из строки.

ПРИМЕЧАНИЕ: Указанные выше изменения (подавленное предупреждение и измененное приглашение) не сохраняются после выхода и перезапуска MATLAB,чтобы вы могли поместить приведенный выше код в файл startup.m , чтобы применять их автоматически каждый раз, когда вы начинаете новый сеанс.

...