如何在旧版本的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',)
进行自动转换,这可能会干扰位置
值的解释
在第二部分中,如果需要,我们将更改分辨率值
在第三部分中,我们更改分辨率,调整大小并导出图形,然后将分辨率返回到默认值
定义地物布局的时间和方式要小心