2009-01-11 19 views
49

Normalmente cuando trazo en MATLAB, siempre se basa en la misma figura. ¿Cómo hago que dibuje una nueva figura?¿Cómo crear una nueva figura en MATLAB?

Sé que es bastante elemental, pero no lo encuentro utilizando la Búsqueda de Google.

+3

La ayuda integrada de Matlab ('doc') es realmente útil y su herramienta de búsqueda funciona bien. – wap26

Respuesta

74
figure; 
plot(something); 

o

figure(2); 
plot(something); 
... 
figure(3); 
plot(something else); 
... 

etc.

+0

¿Hay algún ajuste en MATLAB para que cada vez que publique el comando 'plot', trace en la ventana de la nueva figura sin escribir específicamente la figura (n) seguido de la gráfica? – chandresh

+0

@Federico A. Ramponi ¿Por qué no comenzar con la figura (1), pero comenzar con la figura (2)? – kyle

12

La otra cosa que tener cuidado, es utilizar el comando clf (figura claro) cuando se está empezando una trama fresca. De lo contrario, puede trazar en una figura preexistente (no es posible con el comando figure por sí mismo, pero si lo hace figure(2) puede que ya haya una figura n. ° 2), con más de un eje o un eje que se coloca un poco gracioso . Utilice clf para asegurarse de que usted está comenzando desde cero:

figure(N); 
clf; 
plot(something); 
... 
22

Mientras se hace "figura (1), la figura (2), ..." va a resolver el problema en la mayoría de los casos, no se va a resolver en todos los casos. Supongamos que tiene un montón de figuras de MATLAB en su escritorio y cuántas tiene abiertas varía de vez en cuando antes de ejecutar su código. Con las respuestas proporcionadas, sobrescribirá estas cifras, que es posible que no desee. La solución fácil es simplemente usar el comando "figura" antes de trazar.

Ejemplo: usted tiene cinco cifras sobre el escritorio de un guión anterior se ejecutó y se utiliza

figure(1); 
plot(...) 

figure(2); 
plot(...) 

Sólo trazarse sobre las cifras sobre el escritorio. Sin embargo, los códigos

figure; 
plot(...) 

figure; 
plot(...) 

acaba de crear figuras 6 y 7 con los gráficos deseados y dejaron sus parcelas anteriores 1-5 solo.

3

Como ya se ha dicho: figure creará una nueva figura para sus siguientes parcelas. Mientras llama al figure, también puede configurarlo. Ejemplo:

figHandle = figure('Name', 'Name of Figure', 'OuterPosition',[1, 1, scrsz(3), scrsz(4)]); 

El ejemplo establece el nombre de la ventana y el tamaño externo de la misma en relación con la pantalla utilizada. Aquí figHandle es el identificador de la figura resultante y puede usarse posteriormente para cambiar la apariencia y el contenido. Ejemplos:

punto de notación:

figHandle.PaperOrientation = 'portrait'; 
figHandle.PaperUnits = 'centimeters'; 

viejo estilo:

set(figHandle, 'PaperOrientation', 'portrait', 'PaperUnits', 'centimeters'); 

Usando el mango con la notación de puntos o set, Aquí se configuran las opciones de impresión.

Al mantener los identificadores de las figuras con nombres diferentes, puede interactuar con varias figuras activas. Para establecer una cifra existente como su activo, llame al figure(figHandle). Nuevas parcelas irán allí ahora.

+0

@Masi: Esto todavía debería ser posible, pero podría ser que solo funciona con figure ('Nombre', nombre) - el nombre es una cadena aquí. ¿Podrías probar eso? Con las versiones recientes de Matlab también puede acceder a las propiedades de las figuras a través de la notación de puntos: figure.Name = 'myFigureName' – Grebu

+1

Intente usar la figura ('Nombre', 'Nombre de la figura'). La primera cadena es la propiedad y el segundo el valor que se debe usar. La convención de puntos se usa para acceder a una propiedad a la vez. Creo que no se implementó para figura, etc. en Matlab2012/13. Sin embargo, ya podría ser utilizado por clases personalizadas. – Grebu

0

Tan simple como esto:

figure, plot(yourfigure); 
1

Otra opción común es cuando se hace querer parcelas múltiples en una sola ventana

f = figure; 
hold on 
plot(x1,y1) 
plot(x2,y2) 
... 

parcelas múltiples conjuntos de datos en el mismo (nuevo) figura.

Cuestiones relacionadas