Matlab - 获取子图行和列

时间:2013-04-01 18:49:51

标签: matlab resize matlab-figure subplot

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

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

图或轴中是否有属性告诉我该图有3行4列?我需要调整每个轴的大小,知道行和列很重要,所以我知道如何调整它们的大小。提前谢谢。

1 个答案:

答案 0 :(得分:2)

不,没有这样的财产。轴对象只有'Position'属性。子图功能的作用是计算适当的轴位置。

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

例如:

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

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