Tengo algunos programas escritos en Matlab que necesito para ejecutar varias veces por algunas razones (depuración, pruebas con diferentes entradas, etc…)

Pero, hay una gran cantidad de gráficos que están representadas por los programas y sus diversas funciones tales que cada vez que ejecute el programa, tengo que esperar para que todos los gráficos que se muestran, lo cual es muy molesto y consume mucho tiempo (especialmente cuando se trabaja con un pequeño ordenador portátil).
Después de que se ejecuta el programa, los cierro con un close all.

Así que mi pregunta es:

Hay una manera de desactivar todas las parcelas/figuras/gráficos en Matlab? ya sea en las opciones, o mediante la ejecución de un determinado código como disable plot y enable plot para asegurar que ninguna de las figuras que se muestran.

Sé que se puede examinar el código y comentario de la conspiración de parte, pero no quiero olvidar comentar.

OriginalEl autor Mesop | 2012-04-12

3 Comentarios

  1. 13

    Trate de una combinación de los dos comandos:

    set(gcf,'Visible','off')              % turns current figure "off"
    set(0,'DefaultFigureVisible','off');  % all subsequent figures "off"

    La segunda, si la pones cerca del comienzo de su programa, podría hacer el truco para ti. Por supuesto, es la creación de las parcelas, lo que podría ser indeseable para el tiempo de cómputo y/o problemas de RAM.

    Este es un clásico de la razón para evitar Matlab cuando se puede. Fomenta el mal diseño de programación. Para resolver este problema correctamente, usted debe crear algo que le permite «mover de un tirón un interruptor» en el nivel más alto de su programa de control y si las parcelas de mostrar o no mostrar. Tal vez incluso tiene gradaciones de mostrar/no mostrar la opción de modo que usted puede seleccionar diferentes tipos de parcelas que hacer/no mostrar dependiendo de lo que el diagnóstico esté ejecutando.

    Idealmente, usted quiere este «mover de un tirón un interruptor de» la creación de una clase que tiene acceso a la visibilidad y la trama de las funciones de otros objetos. Pero porque interactivo de la orientación a objetos es tan complicado en Matlab, a menudo no vale la pena el esfuerzo para desarrollar una solución de este tipo, y la mayoría de la gente no piensa acerca de este aspecto del diseño desde el principio de su proyecto.

    Matlab gustaría animar a alguien a solucionar haciendo bandera de variables como «isPlotVisible» o algo así, y la creación de funciones que siempre aceptar tales indicadores. Estoy de acuerdo en que esto es un mal diseño.

    ah, bueno. No sabía acerca de aquellos.
    Lo mismo se trabajará en la Octava, lo que es notable ya trazado es una de las maneras en que Octava generalmente difiere de la llanura de Matlab funcionalidad.
    El set(0,'DefaultFigureVisible','off'); es simplemente perfecto! Es mejorado mucho el rendimiento del programa. Es como que se estaba gastando más tiempo en la creación de las ventanas de las figuras que en realidad el verdadero cálculo.
    Tenga en cuenta que EMS implícita de que las parcelas están siendo creados («es la creación de las parcelas, lo que podría ser indeseable para el tiempo de cómputo y/o problemas de RAM.«) Un simple close all, que se ejecute periódicamente, puede ser útil para limpiar estos invisible parcelas si están usando un montón de recursos.
    Yip: Sí, gracias. Desde que tengo un close all en el comienzo del programa, va a estar bien.

    OriginalEl autor ely

  2. 3

    Podría ejecutar matlab desde la línea de comandos con:

    matlab -nojvm

    pero entonces usted no consigue la interfaz gráfica de usuario. Alternativamente, usted podría escribir un archivo ‘de la trama.m’:

    function h = plot(varargin)
      h = [];
    end

    que no hacer nada. Si este se encuentra en el directorio de trabajo (o en algún otro lugar cerca de la parte superior de la ruta de acceso), entonces la trama se llame a su función en lugar de la ‘real’ de la trama. Tendría que hacer lo mismo de cualquier otra representación gráfica de las funciones de la llamada.

    El más cercano de forma que conozco de ‘apagar conspirar» sería una carpeta de esas funciones que se pueden agregar a la ruta de acceso para desactivar el trazado, y quitar a habilitar.

    +1 solución creativa, a pesar de que es horrible (INTENCIONALMENTE sombreado de MATLAB builtins?)
    sí, y aún peor ya que recientemente he castigado a alguien para dar una respuesta que se hacer Doug Casco llorar
    Me hizo ver que. 😉

    OriginalEl autor Richante

  3. 1

    Los métodos anteriores están bien, pero una fácil y buena costumbre de tomar es usar un "on/off parameter". Así que, básicamente, en el inicio de su código, usted puede agregar algo como:

    DisplayFigure = 1; %1 = display, 0 = no display

    Después de eso, añadir "if DisplayFigure == 1 ... end" por todo su trazado comandos relacionados, donde los comandos deben estar dentro de la sentencia if ( … ). De ahí que ni siquiera calcular las parcelas, que le ahorrará un montón de tiempo y la memoria. Usted sólo tiene que cambiar el valor de la variable «DisplayFigure» a la trama o no las cifras.

    OriginalEl autor PhABC

Dejar respuesta

Please enter your comment!
Please enter your name here