如何在旧版本的Matlab中避免图形裁剪

如何在旧版本的Matlab中避免图形裁剪,matlab,matlab-figure,figure,Matlab,Matlab Figure,Figure,在回答问题和从答案中学习的过程中,另一个问题出现了 当图形即将超出限制时,如何保护要调整大小的图形?假设我们使用的是屏幕分辨率为1400 x 900 px、分辨率为96 ppi的matlab 2011b,并且我们希望导出一个大小为10“x 20”的图形,它肯定会超出限制 FigureSize=[10 20]; FigureInchSize=FigureSize.*1; %\ Convert the given size to inches ScrSize=get(0,'Scr

在回答问题和从答案中学习的过程中,另一个问题出现了


当图形即将超出限制时,如何保护要调整大小的图形?

假设我们使用的是屏幕分辨率为1400 x 900 px、分辨率为96 ppi的matlab 2011b,并且我们希望导出一个大小为10“x 20”的图形,它肯定会超出限制

FigureSize=[10 20];
FigureInchSize=FigureSize.*1;           %\ Convert the given size to inches
ScrSize=get(0,'ScreenSize');
ScrSize=ScrSize(3:4);
PPI_def=get(0,'ScreenPixelsPerInch');
PPI_new=PPI_def;

%\\ Calculate the appropriate resolution PPI_new
if FigureSize(1)*PPI_new>ScrSize(1)    %\ Will the figure width exceed the limit?
  PPI_new=floor(ScrSize(1)/FigureInchSize(1));
end
if FigureSize(2)*PPI_new>ScrSize(2)    % Will the figure height exceed (new) limit?
  PPI_new=floor(ScrSize(2)/FigureInchSize(2));
end

set(0,'ScreenPixelsPerInch',PPI_new);
set(FigureHandle,'position',[0.1,0.1,FigureSize]);
%\\ Export the figure
export_fig('Foo','-pdf','-nocrop');
%\\ Reset the resolution
set(0,'ScreenPixelPerInch',PPI_def);
在第一部分中,我们读取必要的值并将其转换为合适的格式。我们还避免通过
set(句柄,'Units',)
进行自动转换,这可能会干扰
位置
值的解释

在第二部分中,如果需要,我们将更改分辨率值

在第三部分中,我们更改分辨率,调整大小并导出图形,然后将分辨率返回到默认值

定义地物布局的时间和方式要小心