在用matlab中的figure命令生成图片时,我们会发现图片没有“占满”整个窗口(如图1),
图1(图片未占满窗口)
这种情况下利用Edit—Copy Figure命令截图时所得到的图片会含有“白边”,这样的白边在排版时会显得很不好,例如在word中会发现图片周围的占有大片空白。那么该怎么消除白边呢?只需要一条下面的命令即可:
set(gca,'Position',[left bottom width height]);
图片的大小由width和height决定。图片在窗口中的位置由left和bottom决定,left越小,图片左边的白边越少(即图片会左移),bottom越小,图片底边的白边越少(即图片会下移)。针对图1,在画图时加上上面的命令:
figure(1);
set(gca,'Position',[0.07 0.08 0.9 0.9]);
plot(s(:,1),s(:,3),'r-','linewidth',2);
更改之后,图片的效果如图2,
图2
其中 left,bottom,width,height,这4个值的大小不定,可以根据实际情况做出调整,找到最合适的布局。
上面说明了窗口中只含有一幅图的情况,当窗口中含有多个子图时(画图时用到“subplot”命令,如图3),就要对每一个子图都要进行调整,在每一个subplot中都要加上set命令,
图3
在画图代码中添加set命令,画图代码如下:
figure(2);
subplot(311);
set(gca,'position',[0.08,0.75,0.89,0.23])
plot(t,x(:,1)-0.5*cos(t/2),'b','linewidth',2);
xlabel('Time(s)');ylabel('e_x');
subplot(312);
set(gca,'position',[0.08,0.42,0.89,0.23])
plot(t,x(:,3)-0.5*sin(t/2),'b','linewidth',2);
xlabel('Time(s)');ylabel('e_y');
subplot(313);
set(gca,'position',[0.08,0.09,0.89,0.23])
plot(t,x(:,5)-(2+t/10),'b','linewidth',2);
xlabel('Time(s)');ylabel('e_z');
具体每一幅子图都可以用set命令进行调整,调整之后的效果如图4,
图4