0%

MATLAB程序:设置图片尺寸与位置

写作高质量的学术文章时,个人认为首先要好看

有人说,内容重于形式。好吧,我承认你是对的

学术文章里的图片也是如此,第一个问题:想要2.71828cm*3.14159cm的图片怎么办?

为此,我编写了一个小程序,用于设置图片尺寸与位置。完整代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 该脚本用于图像尺寸与位置设置
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% INPUT
% parameter1 : - 矢量 1x4
% parameter1 = [fw,fh,fx,fy]
% parameter1(1) - 图像宽度, 单位cm
% parameter1(2) - 图像高度, 单位cm
% parameter1(3) - 图像在屏幕中比例位置, 水平方向
% parameter1(4) - 图像在屏幕中比例位置, 铅垂方向
% parameter2 : - 矢量 1x4
% parameter2 = [aw,ah,ax,ay]
% parameter2(1) - 坐标轴宽度(与图像宽度的比例)
% parameter2(2) - 坐标轴高度(与图像高度的比例)
% parameter2(3) - 坐标轴在图像中比例位置, 水平方向
% parameter2(4) - 坐标轴在图像中比例位置, 铅垂方向
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% OUTPUT - NONE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 调用示例1 - 画一个图
% x=rands(10,1);plot(x);figset([8,9,0.1,0.1],[0.8,0.8,0.1,0.1]);
% 调用示例2 - 画多个图
% figure;x1=rands(10,1);plot(x1);figset([8,8,0.1,0.1],[0.8,0.8,0.1,0.1]);
% figure;x2=rands(10,1);plot(x2);figset([5,5,0.5,0.5],[0.8,0.8,0.1,0.1]);
% 调用示例3 - 只输入parameter1
% figure;x1=rands(10,1);plot(x1);figset([8,8,0.1,0.1],[0.5,0.7,0.1,0.2]);
% figure;plot(x1);figset([8,8,0.5,0.5]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function figset(parameter1,parameter2)

%电脑屏幕尺寸
set(0,'units','centimeters')
cm_ss=get(0,'screensize');
W=cm_ss(3);%电脑屏幕长度,单位cm
H=cm_ss(4);%电脑屏幕宽度,单位cm

%设置figure在screen中的比例位置与大小
temp1=[parameter1(3),parameter1(4),parameter1(1)/W,parameter1(2)/H];
set(gcf,'units','normalized','position',temp1);
if nargin==2
%设置axis在figure中的比例位置与大小
temp2=[parameter2(3),parameter2(4),parameter2(1),parameter2(2)];
set(gca,'position',temp2);
end

end

MATLAB(我使用的是R2018b)支持十分友好的属性检查器(Property Inspector)图像化界面,在图像化界面里可以对Figure的所有属性(包括上述函数figset设置的大小与位置)进行傻瓜式操作MathWorks还是用心了。