如何用Matlab在特定位置显示两个图

How to display two plot in a specific position with Matlab

大家好,

当我 运行 生成两个图的 Matlab 代码时,它们被过度绘制(第二个在第一个之上)。

我想得到这个图的结果,其中两个图就像 subplot(211)subplot(212) 中的一样,第一个和第二个用两个冒号表示,但不使用 subplot.

有可能吗?

更新

我用两个子函数生成了这两个图:

function create_figure(X1, YMatrix1, p)
%CREATE_FIGURE(X1, YMATRIX1)
%  X1:  vector of x data
%  YMATRIX1:  matrix of y data
%  P: parameters used in legend

% Create figure
figure1 = figure('Name','Acceleration Power vs. Velocity LPF 1st order');
...

function create_figure_gamma(X1, YMatrix1, p)
%CREATE_FIGURE_GAMMA(X1, YMATRIX1, P)
%  X1:  vector of x data
%  YMATRIX1:  matrix of y data
%  P: parameters used in legend

% Create figure
figure1 = figure('Name','gamma trend vs. Velocity');
...

当然,我可以输出参数figure1,写成:

function figure1 = create_figure(X1, YMatrix1, p)

我认为这个参数可以设置两个图的位置,但我不知道该程序是否尊重通用 window 大小。

这将产生两个并排的图形:

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);

h1=figure
plot(x,y1);
h2=figure
plot(x,y2);
% x, y, width, height
set(h1,'Position',[20 616,560,420])
set(h2,'Position',[20+560 616,560,420])

您还可以将单位设置为 'normalized' 并输入数字的相对位置:

set(h1,'Units','normalized');
set(h2,'Units','normalized');
set(h1,'Position',[0.1021    0.1708    0.2917    0.3500]);
set(h2,'Position',[0.4021    0.1700    0.2917    0.3508]);

这样你就不受当前屏幕分辨率的影响了。