터미널 아래에서 Matlab Invisible Plot 저장 동일한 크기의 이미지로 저장
-
13-09-2019 - |
문제
나는 SSH가 Linux 서버에 연결하고 있으며 Matlab 프로그래밍을 수행하고 있습니다. 보이지 않는 음모를 저장하고 싶습니다
figH = figure('visible','off') ;
% Plot something
% save the plot as an image with same size as the plot
close(figH) ;
saveas()
그리고 print()
저장된 이미지의 크기가 플롯 크기와는 다른 저장 이미지의 크기를 변경합니다. 또한 print()
, 세 가지 렌더러 모드 (-opengl
, -ZBuffer
그리고 -painters
) Linux 서버의 터미널 에뮬레이션 모드에서는 사용할 수 없습니다. getframe()
작동하지 않습니다. 어떻게 이러한 문제를 해결할 수 있는지 궁금합니다. 감사합니다.
해결책
다음의 명령 시퀀스를 사용하여 MATLAB을 연결하고 시작하십시오.
ssh -x user@server # disabled X11 forwarding
unset DISPLAY # unset DISPLAY variable
matlab -nodisplay # start MATLAB without the desktop
그런 다음 설명 할 간단한 음모를 설명합니다.
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
방금 직접 시도했는데 예상대로 작동합니다.
편집하다:
항상 DPI 해상도를 사용하여 지정할 수 있습니다 -r<number>
, 예를 들어 매우 높은 해상도 :
print -dpdf -r600 file.pdf
사용할 수 있습니다 -r0
화면 해상도를 지정합니다.
또한 켜질 수 있습니다 그림의 wysiwyg 인쇄 사용 PaperPositionMode
재산:
figure, close
plot(1:10)
set(gcf, 'PaperPositionMode', 'auto')
print -deps2c -r0 file.eps
exit
제휴하지 않습니다 StackOverflow