Question

Je suis SSH connexion à un serveur Linux et faire de la programmation Matlab. Je voudrais sauver parcelle invisible

figH = figure('visible','off') ;  
% Plot something  
% save the plot as an image with same size as the plot   
close(figH) ;   

saveas() et print() vont changer la taille de l'image enregistrée différente de la taille de la parcelle. Aussi pour print(), les trois modes de rendu (-opengl, -ZBuffer et -painters) ne peuvent pas être utilisés en mode d'émulation de terminal sur le serveur Linux. getframe() ne fonctionne pas non plus. Je me demande comment je peux résoudre ces problèmes? Merci et salutations!

Était-ce utile?

La solution

utiliser la séquence de commandes suivante pour se connecter et démarrer MATLAB:

ssh -x user@server          # disabled X11 forwarding
unset DISPLAY               # unset DISPLAY variable
matlab -nodisplay           # start MATLAB without the desktop

alors une intrigue simple pour illustrer:

figure, close                    # must do this first, otherwise plot is empty
plot(1:10)                       # usual plotting
print file                       # save the figure as file.ps
saveas(gcf, 'file.eps', 'eps2c') # saveas aslo works
exit                             # done

Je viens d'essayer moi-même, et il fonctionne comme prévu.


EDIT:

Vous pouvez toujours spécifier la résolution DPI en utilisant -r<number>, par exemple une très haute résolution:

print -dpdf -r600 file.pdf

Notez que vous pouvez utiliser -r0 pour spécifier la résolution de l'écran.

vous pouvez également activer l'impression WYSIWYG des chiffres en utilisant la propriété PaperPositionMode:

figure, close
plot(1:10)
set(gcf, 'PaperPositionMode', 'auto')
print -deps2c -r0 file.eps
exit
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top