터미널 아래에서 Matlab Invisible Plot 저장 동일한 크기의 이미지로 저장

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

문제

나는 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top