حفظ مؤامرة ماتلاب غير مرئية تحت محطة كصورة مع نفس الحجم
-
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