Я никогда не работаю с графическим интерфейсом и всегда нахожусь в терминале (также полноэкранном, без заголовка), установленном с параметром -nodesktop -nodisplay. У меня также есть разные серверы, к которым я подключаюсь, для запуска matlab, и у каждого из них есть разные ограничения на использование вычислительных ресурсов. Поскольку мне сложно запомнить, на каком сервере я нахожусь, особенно если у меня открыто несколько сеансов, мне было интересно, могу ли я изменить приглашение для отображения имени сервера. Попытайтесь, как я мог, я не мог найти ресурс, объясняющий, как это сделать (я начинаю думать, что Mathworks не поддерживает его). Я знаю, обходным путем было бы просто написать вызов функции system('hostname')
и поместить функцию в путь, так что это примерно так же просто, как набрать pwd
, чтобы найти каталог. Я хотел бы узнать, есть ли что-то более элегантное.
Могу ли я изменить приглашение в MATLAB?
Ответ 1
В MathWorks File Exchange есть сообщение, которое может сделать это для вас: setPrompt Yair Altman. Используя его в 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, чтобы автоматически применять их каждый раз при запуске нового сеанса.