使用subplot-command更改已存在的子图,其中包含更多行

时间:2016-03-23 09:52:08

标签: matlab plot matlab-figure

使用subplot - 命令时遇到问题:
当我像这样创建一个数字时

x = linspace(0,100);
y1 = x.^2;
y2 = x.^3;
figure;
subplot(2,1,1)
plot(x,y1)
subplot(2,1,2)
plot(x,y2)

然后意识到,我忘了标记第一个子图的轴,我可以做到

subplot(2,1,1)
xlabel('time in s')

它工作正常。
现在,当我保存这个图并再次打开它并且我想在第一个子图上更改某些内容时,它不会像这样工作。只要我subplot(2,1,1),该子图中的行将被删除。当然,我可以使用get - 或findobj - 命令来获取该子图的轴控制,然后更改它的内容,但这看起来非常复杂。
所以我的问题是:有没有办法解决我上面描述的行为,为什么它只是在我绘制它时与我从文件重新打开它时的行为不同?

编辑:请注意,如果重要的话,我使用Matlab R2010b

1 个答案:

答案 0 :(得分:2)

如果您不想使用findobj功能,我认为此选项也适用于使用subplot来获取您的数字。

uiopen('filename.fig');
  for i=1:numberOfSubplot
    h(i)= subplot(x,y,i); %//fill in x y as your subplot structure
    xlabel(h(i),'new x-label')
  end

编辑 - 替代方法:

h=hgload('filename.fig'); 
haxis=get(h,'children'); 
xlabel(haxis(1),'label 1') 
xlabel(haxis(2),'label 2') 

在2010b测试工作正常。

result