1. 程式人生 > >設定matlab畫出的figure影象匯出圖片的大小

設定matlab畫出的figure影象匯出圖片的大小

figure圖片儲存的時候,使用saveas命令,如果不做設定,只能儲存預設大小,但是有的時候需要儲存特定比例拉伸的圖片。

matlab裡面figure相關物件的關係是: screen→figure→axis,所以在設定圖片大小的時候,先設定figure相對於screen的位置和大小,然後設定axes相對於figure的位置和大小。

圖畫出來之後,如下命令就可以儲存特定大小的圖片。下面給出兩種方法。

法一 截圖

%=========================================================

set(gcf,'position',[100,100, 500, 300]); %設定figure的位置和大小 get current figure

set(gcf,'color','white'); %設定figure的背景顏色

A=getframe(gcf);

imwrite(A.cdata,'try.png') %儲存調整過大小的圖片

%==================================================



還可以根據需求調整座標軸的位置和大小,比如不想要白邊一類

%====================================================

set(gca,'DataAspectRatio',[3,4,1]); %調整座標軸比率 get current axes

set(gca,'position',[0,0,1,1]); %調整座標軸位置

%======================================================



最後說明一下,saveas儲存的大小是預設大小,imwrite相當於截圖;存圖片的時候要養成好習慣,順便存一個figure,以方便以後修改。

saveas(gcf,'tt.fig');


法二 設定保持長寬比存圖

如果要發表paper,上面這種做法就不可取了,因為存下的圖片是截圖;不少雜誌(比如PR系列),直接說了,Not Screen!(截圖丟失資訊,不方便出版方的再次排版一類)。

圖片畫出來以後,執行以下命令,就可以保持長寬比率儲存圖片(但是圖片的絕對大小會變化)。

set(gcf,'color','white','paperpositionmode','auto');

saveas(gcf,'exprimentLightBundles.eps','psc2');