使用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
答案 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测试工作正常。