2011-02-19 13 views
12

Nunca trabajo con la GUI y siempre estoy dentro de una terminal (también pantalla completa, por lo que no hay barra de título) configurada con la opción -nodesktop -nodisplay. También tengo diferentes servidores con los que me conecto, para ejecutar matlab y cada uno de ellos tiene diferentes restricciones para acaparar recursos computacionales. Dado que es difícil recordar en qué servidor estoy, especialmente si tengo varias sesiones abiertas, me preguntaba si podría cambiar el mensaje para mostrar el nombre del servidor. Por más que lo intente, no pude encontrar un recurso que explique cómo hacerlo (estoy empezando a pensar que Mathworks no lo admite). Lo sé, una solución alternativa sería simplemente escribir una llamada a la función system('hostname') y poner la función en la ruta, por lo que es tan fácil como escribir pwd para encontrar el directorio. Me gustaría saber si hay algo más elegante.¿Puedo cambiar el prompt en MATLAB?

+0

@ user564376: ¿Cuál es el motivo para no usar el IDE? – zellus

+0

me conecto a los servidores por ssh y hago mi trabajo allí. transmitiendo todo el gui a través de recursos de cerdos X11 (sin mencionar, jvm), a pesar de que tengo una muy buena conexión. Es mucho más rápido trabajar desde la terminal e imprimir todas las figuras con 'visible' 'apagado', volver a colocarlo en mi computadora portátil y verlas localmente. –

Respuesta

12

Hay un envío en el MathWorks File Exchange que puede hacer esto por usted: setPrompt por Yair Altman. Su uso en R2010b, me di cuenta de que estaba recibiendo el mensaje de advertencia:

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

Qué yo era capaz de suprimir el uso de la función warning así:

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

Y así es como he cambiado el símbolo de el nombre de host mediante la función system:

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

la función deblank se utiliza para eliminar los espacios en blanco de salida (en este caso una nueva línea) de la cadena.

NOTA: Los cambios anteriores (advertencia suprimido y rápido modificado) no persisten después de salir y reiniciar MATLAB, por lo que podría poner el código anterior en su startup.m file para aplicarlas de forma automática cada vez que se inicia una nueva sesión .

+1

Esta respuesta no parece aplicarse bien a las versiones más recientes (MATLAB 2018a), el código de Altman ahora emite una advertencia sobre la capacidad de respuesta. ¿Hay una nueva forma? –

+1

@AlecJacobson: Dejaría un comentario en la página de envío para 'setPrompt' indicando eso. – gnovice

+0

Aunque entiendo completamente por qué marcó inicialmente [esta pregunta] (https://stackoverflow.com/questions/48646435/) como un @gnovice duplicado, creo que podría ser lo suficientemente diferente como para justificar la eliminación de una etiqueta duplicada. Agregué una breve explicación de las diferencias entre las preguntas, y también hice un enlace a esta pregunta, para que los usuarios que lo necesiten puedan ser redirigidos. Obviamente tienes más experiencia aquí, así que lo dejaré en tus manos, y respetaré tu decisión de cualquier manera. – Lucubrator

Cuestiones relacionadas