Сохраните невидимый участок Matlab под терминалом как изображение с таким же размером - PullRequest
15 голосов
/ 05 декабря 2009

Я подключаюсь по 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 Ответ

15 голосов
/ 05 декабря 2009

Используйте следующую последовательность команд для подключения и запуска 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

Я просто попробовал сам, и он работает как положено.


EDIT:

Вы всегда можете указать разрешение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...