In MATLAB, come salvare una figura come immagine nello stesso modo in cui l'utilizzo di “Salva con nome ...” nella finestra di figura?

StackOverflow https://stackoverflow.com/questions/3763175

  •  04-10-2019
  •  | 
  •  

Domanda

Quando si salva una figura, quale funzione fa uso di Matlab? Ad esempio, quando un utente seleziona File> Salva con nome ... e poi seleziona .png o in un altro formato di immagine, quello che sta succedendo dietro le quinte?

sto chiedendo perché sto cercando di automatizzare il risparmio, ma quando uso saveas o print, l'immagine risultante è davvero pixel. Tuttavia, gli sguardi di immagini veramente buoni quando salvo la figura con il metodo descritto sopra.

Quale metodo dovrei usare per salvare la mia figura dalla linea di comando? Il metodo effettivo che gli usi finestra Figura avrebbe funzionato, ma se voi ragazzi avete soluzioni migliori, mi piacerebbe appricate esso!

È stato utile?

Soluzione

Il callback per "Salva con nome ..." voce di menu richiama la funzione FILEMENUFCN con il primo argomento ingresso essendo la maniglia della figura il menu è in e il secondo argomento ingresso essendo il 'FileSaveAs' stringa. Se avete la maniglia dato memorizzato nella hFigure variabile, quindi il seguente comando dovrebbe essere equivalente a fare clic sul "Salva con nome ..." voce di menu in quella finestra figura:

>> filemenufcn(hFigure,'FileSaveAs');


Alcune note ...

  • La funzione FILEMENUFCN è solo parzialmente documentato. Si può fare help filemenufcn nella finestra di comando, ma non c'è alcuna voce per esso nella documentazione in linea. In MATLAB 2009a, la funzione può essere trovata nella seguente cartella:

    C:\Program Files\MATLAB\R2009a\toolbox\matlab\uitools\filemenufcn.m
    

    Guardando attraverso il codice di funzione, sembra che alla fine chiama sia la funzione SAVEAS per .Fig file o la funzione HGEXPORT (con l'aggiunta di argomenti di input) per altri tipi di file.

  • sono stato in grado di dare la caccia al callback per "Salva con nome ..." la voce di menu con la ricerca attraverso i bambini della finestra figura e suoi menu. È possibile farlo da soli impostando la href="http://www.mathworks.com/help/techdoc/ref/rootobject_props.html#ShowHiddenHandles" rel="noreferrer"> proprietà 'ShowHiddenHandles' per 'on' e quindi il movimento tramite le proprietà 'Children' della finestra figura e la sua menu utilizzando la GET comando. Un'alternativa è quella di utilizzare il comando findall , a patto di saper alcune proprietà del Gli oggetti che stai cercando. Ad esempio, questo troverà la maniglia per il menu "File" per la finestra cifra attuale:

    >> hFileMenu = findall(gcf,'Label','&File');
    

    E questo troverà la maniglia per il "Salva con nome ..." voce di menu e visualizzare la sua callback:

    >> hSaveAs = findall(hFileMenu,'Label','Save &As...');
    >> get(hSaveAs,'Callback')
    ans =
    filemenufcn(gcbf,'FileSaveAs')
    

Altri suggerimenti

Non so voi, ma per me l'immagine salvata sembra piacevole.

Esempio di codice:

... create some figure ...
saveas(gcf, 'some_figure.png');

Per impostare un utilizzo risoluzione utente specificato:

print(gcf,'some_figure','-dpng','-rSOMENUMBER')

dove SOMENUMBERis un parametro utilizzato per la risoluzione. La risoluzione finale (someNumber * 8) x (someNumber * 6)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top