حفظ مؤامرة ماتلاب غير مرئية تحت محطة كصورة مع نفس الحجم

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