Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 为什么子地块位置会发生变化?_Matlab_Matlab Figure_Subplot - Fatal编程技术网

Matlab 为什么子地块位置会发生变化?

Matlab 为什么子地块位置会发生变化?,matlab,matlab-figure,subplot,Matlab,Matlab Figure,Subplot,注意:在我的案例中,这个问题发生在2016b 我试着用3x4子图和勾号一起绘制一个数字 标签仅位于最左侧和底部子批次上。但是,当我运行下面的代码时,第一个绘图似乎改变了大小: figure hold on n = 12; ax = gobjects(n,1); for k = 1:n pos = [0.1+0.2*(mod(k-1,4)), 0.65-0.3*floor(k/4-0.01), 0.2, 0.3] ax(k) = subplot(3,4,k,'Position',pos); end

注意:在我的案例中,这个问题发生在2016b

我试着用3x4子图和勾号一起绘制一个数字 标签仅位于最左侧和底部子批次上。但是,当我运行下面的代码时,第一个绘图似乎改变了大小:

figure
hold on
n = 12;
ax = gobjects(n,1);
for k = 1:n
pos = [0.1+0.2*(mod(k-1,4)), 0.65-0.3*floor(k/4-0.01), 0.2, 0.3]
ax(k) = subplot(3,4,k,'Position',pos);
end
set(ax(1:8),'XTick',[])
set(ax([2:4 6:8 10:12]),'YTick',[])
请注意,我正在打印
pos
。第一个子批次的输出为

pos =

    0.1000    0.6500    0.2000    0.3000
但当我再次检查第一个子批次的位置时

ax(1).Position

ans =

    0.1300    0.7093   0.1566    0.2157
情节是这样的:

此外,我试图在之后操纵第一个子图的位置,但这只会使情况变得更糟,请参见下文:

ax(1).Position = [0.1000, 0.6500, 0.2000, 0.3000];


感谢大家的帮助

我可以在R2016b中重现该问题。有趣的是,当您这样做时,它会起作用:

figure
hold on
n = 12;
ax = gobjects(n,1);
for k = 1:n
    pos = [0.1+0.2*(mod(k-1,4)), 0.65-0.3*floor(k/4-0.01), 0.2, 0.3]
    ax(k) = subplot(3,4,k);
    set(ax(k),'Position',pos);
end
set(ax(1:8),'XTick',[])
set(ax([2:4 6:8 10:12]),'YTick',[])
唯一的变化是我首先创建子图,然后设置它的位置


我不完全确定原因。但是,比较两个版本中轴的所有字段时,我注意到在您的原始版本中,第一个轴的
PlotBoxAspectRatio
[0.9670 1.0000 0.9670]
,而所有其他轴的
PlotBoxAspectRatio
[0.8889 1.0000 0.8889]
。在我的“固定”版本中,所有轴都具有
[0.8889 1.0000 0.8889]
PlotBoxAspectRatio
。不确定那里到底发生了什么。

无法在MATLAB 2014b中重现。当我运行你的代码时,我得到了一个很好的子图网格,所有子图都很整齐。试着调整图形窗口的大小,在2016a中也不可复制。这就是我得到的:我明白了。谢谢你的意见!我应该提到,在我的案例中,问题发生在2016b。也请注意,在2015b中,我得到了与@Sardar_Usama相同的结果