saveas jpg close matlab file plot figure

jpg - ¿Cómo puedo extraer datos de un archivo.fig en MATLAB?



save figure matlab jpg (4)

Aquí hay una manera muy simple:

Haga clic en el objeto del que desea obtener los datos. No habrá indicaciones de que ha hecho clic en él.

>> xd = get(gco,''XData''); >> yd = get(gco,''YData'');

A veces puede ser difícil hacer clic en la línea u otro objeto. Si tiene este problema, haga clic en los ejes que contienen los elementos secundarios que le interesan, luego:

>> kids = get(gca,''Children'');

Esto le dará una variedad de identificadores para los diversos niños. Puede tratar de obtenerlos uno a la vez indizando en niños, o usar los siguientes para obtener toda la información a la vez. Esto devolverá los resultados como una matriz de celdas, lo que puede ser un poco complicado si no los ha usado antes:

>> xd = get(kids,''XData''); >> yd = get(kids,''YData''); >> xd1 = xd{1}; %# X Data from first line

Sé que esto es realmente básico, pero soy nuevo en MATLAB. Después de abrir un archivo .fig, ¿cómo trabajas con los datos graficados en la ventana de comandos? Todo lo que veo es la trama. No estoy seguro de cómo obtener los datos.


En realidad, ni siquiera tiene que mostrar la figura para obtener los datos. Los archivos FIG se almacenan en el formato Matlab MAT estándar, que puede leer utilizando la función load () incorporada. Los identificadores de figuras y los datos se almacenan en una estructura que puede comprender y procesar fácilmente.


Pruebe hgload y luego examine la estructura del identificador gráfico que devuelve. Por ejemplo, si traza y guarda lo siguiente:

x=0:.01:10; y=sin(x); h=plot(x,y); saveas(h,''testfigure.fig'');

Borre su espacio de trabajo y abra la figura guardada usando hgload:

clear close all h=hgload(''testfigure.fig'');

Puede inspeccionar la manecilla de la figura h llamando

get(h)

O profundice en los ejes / títulos / leyendas llamando

ch=get(h,''Children'');

Si está usando el código en mi ejemplo, solo debería tener un hijo para la figura, que serán los ejes. Llama a los niños de los ejes, y deberías tener una línea.

l=get(ch,''Children'');

A continuación, llame a los campos ''Xdata'' y ''Ydata'' de la línea, y tendrá sus datos originales.

x=get(l,''Xdata''); y=get(l,''Ydata'');

Si tienes una figura más complicada que simplemente ejes, se pone un poco más difícil. Tendrá que explorar a cada niño para determinar si es la trama de la que quería extraer los datos.


Use el comando HGLOAD. Referencia disponible here .