Сохраните невидимый участок Matlab под терминалом как изображение с таким же размером
Я подключаюсь по 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()
тоже не работает. Интересно, как я могу решить эти проблемы? Спасибо и всего наилучшего!
1 ответ
Используйте следующую последовательность команд для подключения и запуска 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