L'exportation Matlab figure PNG?
J'ai besoin d'exporter automatiquement les chiffres de Matlab pour PNG. Ma figure est d'une taille de 600x200 px:
hFig = figure(1);
set(hFig, 'Color', [1 1 1]); % backgroundcolor white
set(hFig, 'Position', [500 500 600 200]) % size 600x200
J'ai essayé par exemple
print -dpng image.png
mais l'image.png est plus grande que 600x200 px. L'exportation de la figure manuellement à partir de la Figure de la Fenêtre GUI en utilisant le bouton "enregistrer" fonctionne très bien, je veux faire exactement cela automatiquement /à partir d'un script. Merci pour tout conseil!
Je pense que la bonne façon "d'appeler" la commande d'impression(hFig, '-dpng', 'image.png')
Merci trumpetlicks, mais malheureusement, cela se termine comme 1201x901, tandis que le GUI matlab la fonction d'exportation donne-moi la 600x200 (comme il convient) ):
Les deux façons d'appeler
Bon à savoir, un moment pour moi 🙂 +1
double possible de l'Impression d'un MATLAB de l'intrigue dans les dimensions exactes sur papier
Merci trumpetlicks, mais malheureusement, cela se termine comme 1201x901, tandis que le GUI matlab la fonction d'exportation donne-moi la 600x200 (comme il convient) ):
Les deux façons d'appeler
print
sont équivalentes. Voir ici: mathworks.de/help/techdoc/ref/syntax.htmlBon à savoir, un moment pour moi 🙂 +1
double possible de l'Impression d'un MATLAB de l'intrigue dans les dimensions exactes sur papier
OriginalL'auteur stefan.at.wpf | 2012-06-29
Vous devez vous connecter pour publier un commentaire.
Je connais aussi le problème que les chiffres sauver jamais le même aspect que sur l'écran.
Il est le
saveas
de commande qui pourraient travailler pour vous - mais aussi certains de résolution de change pour moi.Seule solution que je connaisse est de bien définir tous les aspects comme ceci:
(donc de la taille du papier est 2x6" et d'impression à 100dpi, PaperPosition est important, comme vous l'aurez sinon certains des frontières supplémentaires.)
'PaperSize'
et'PaperPosition'
devrait être[6, 2]
et[0 0 6 2]
, respectivement, pour correspondre à l'original du code, mais sinon, c'est le chemin à parcourir.Merci à vous deux, qui fonctionne très bien! Le titre est décalé de quelques px, mais c'est la seule différence pour l'enregistrer manuellement et pas de problème.
Une question de suivi à ce sujet: Comment puis-je réduire l'affichage de la figure de la fenêtre?
Pour répondre à ma propre question de suivi: hFig = figure(1); set(hFig, 'visible', 'off');
OriginalL'auteur bdecaf
Mon approche préférée pour générer png parcelles de MATLAB est à la
export_fig
utilitaire disponible à la MATLAB d'échange de fichiers.Voici un exemple:
Cela va créer une image png qui est de 500 x 500 pixels, avec de 20 pixels de polices. Je suis sûr qu'en interne il fait les mêmes sortes de choses comme dans bdecaf réponse, mais c'est tout de ecapsulated dans une fonction, pour vous, déjà, et a un tas d'autres fonctionnalités aussi.
L'inconvénient est que si vous utilisez les peintres-rendu (qui, je pense, regarde le meilleur), vous aurez besoin d'avoir installé ghostscript. Si vous ne voulez pas vous embêter avec cela, vous pouvez modifier
-painters
à-opengl
Modifier aujourd'hui de la figure correctement la taille de!
OriginalL'auteur Dan Becker
Basée sur bdecaf réponse:
96 est la résolution de mon système. Cela me donne EXACTEMENT le même résultat que la fonction enregistrer. Pour Windows, le ppp est généralement 96, parfois 120. Il suffit d'ajuster en fonction de votre système. Notez que sur un vidéo projecteur pour le DPI pourrait à nouveau être différent de votre système, en particulier si votre système dispose de 120 DPI! 96 DPI, en général, d'être tout à fait sûr de choix pour les moniteurs, je pense. Google si vous avez besoin d'aide pour trouver le paramètre PPP de votre système. Cette réponse, c'est 99,9%, sur la base bdecaf et Florian, je vais donc laisser bdecaf la réponse est sélectionnée comme la bonne.
edit: 600 = horizontale de l'image taille en px, 200 = verticale de l'image de la taille en px
OriginalL'auteur stefan.at.wpf
Amro réponse fonctionne parfaitement, une fois que vous générez votre figure, ensemble
PaperPositionMode
àauto
et la taille d'impression sera la même que la taille de l'écran.OriginalL'auteur Reza
Essayer:
Ce qu'il indique pour produire une image de la même taille qu'elle apparaît à l'écran.
OriginalL'auteur Amro