Подтвердить что ты не робот

Могу ли я изменить приглашение в MATLAB?

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

4b9b3361

Ответ 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, чтобы автоматически применять их каждый раз при запуске нового сеанса.