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

时间:2015-03-23 11:45:59

标签: matlab plot matlab-figure

Example of the result

大家好,

当我运行生成两个绘图的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)

我认为这个参数可以设置两个图的位置,但我不知道程序是否与通用窗口大小有关。

2 个答案:

答案 0 :(得分:1)

这将产生两个并排的图:

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])

答案 1 :(得分:1)

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

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]);

这样您就可以独立于当前的屏幕分辨率。