Matlab-获取子图的行和列

问题描述 投票:2回答:1

我正在编写一个脚本来调整提供给我的任何图形的大小,我想获得子图的行和列。例如,如果有人给我一个由以下人员创建的图形:

hfig = figure;
haxes = subplot(3,4,1);
...

图形或轴控柄中是否有一个属性可以告诉我图形有3行4列?我需要调整每个轴的大小,并且了解行和列很重要,因此我知道如何调整它们的大小。

matlab resize matlab-figure subplot
1个回答
3
投票

不,没有这样的属性。轴对象只有'Position'属性。子图功能执行的是计算正确的轴位置。

您可以使用ax = findobj(gcf,'type','axes');找到图形上的所有轴。然后使用get(ax,'position')获取位置并分析它们的行数和列数。

例如:

pos = cell2mat(get(ax,'position'));
nrows = numel(unique(pos(:,2))); % the same Y position means the same row
ncols = numel(unique(pos(:,1))); % the same X position means the same column

但是请注意,它将仅分析现有的轴。如果仅使用subplot(221)subplot(222)创建了两个轴,则将获得1行,而不是2行。

© www.soinside.com 2019 - 2024. All rights reserved.