UI元素有时会出现在错误的位置

时间:2018-03-25 17:14:33

标签: matlab matlab-figure

我有以下MATLAB脚本:

fig = figure('Position', [150 30 900 600]);
%height = 2100;             % Works as expected
height = 2400;              % Elements appear in the wrong places
panel = uipanel(fig, 'Units', 'pixels', 'Position', [0 0 900 height]);
xs = linspace(-pi,pi,101);
ys = sin(xs);
width = 300;
height = 300;
yOffset = height*19;
for x = 1:3
    for y = 1:2
        a = axes(panel, 'Units', 'pixels');
        a.Position = [(x-1) * width, (y-1) * height, width, height];
        plot(a, xs, ys);
    end
end

运行时,我希望这会创建一个包含面板和6个平铺轴的图形,这些轴应该填满整个图形窗口。相反,轴元素看起来向上移动,部分偏离面板和图形。这看起来像:

Unexpected figure

如果我将height更改为较低的数字,例如2100,我会得到我期望的结果:

Figure as expected

由于位置相对于左下角,我不明白为什么更改高度会使轴元素像这样移动。它不是平滑过渡,如果高度不太高,轴在正确的位置,但一旦高度太高,高度的进一步增加会导致轴进一步向上移动窗口。

我正在使用MATLAB R2017a。难道我做错了什么?造成这种情况的原因是什么?

注意:我知道我的面板比图中的要大得多,这对我的应用来说是有意和需要的。

0 个答案:

没有答案