在MATLAB图中查找自动调整轴的极限

时间:2013-02-14 06:58:57

标签: matlab matlab-figure

我正在创建一个2d MATLAB图。我正在设置x轴的极限,让我的y轴自动调整(通过将其极限设置为[-inf inf])。在创建我的情节后,我需要检查我的y轴自动调整到什么(因为我要创建一个热图放在我的情节下)。

不幸的是,ylim(和类似的函数)只生成[-inf inf],而不是轴调整到的任何值。

重现此问题的一些代码(比我的实际代码简单得多)是:

function createplot(xbounds)
x = xbounds(1):0.5:xbounds(2);
y = x.^2;
plot(x,y);
axis([xbounds,-inf,inf]);

createplot([0,10])

产生抛物线图,y limit = [0,100]。但是,ylim = [-inf,inf]。

任何帮助将不胜感激!

/威尔伯

2 个答案:

答案 0 :(得分:2)

正如@Shai建议的那样,axis可以提供有关ylimits的信息,而无需将它们设置为[-inf,inf]或使用axis来设置x轴边界:

xbounds=[1 10]
x = xbounds(1):0.5:xbounds(2);
y = x.^2;
plot(x,y);
xlim([xbounds(1) xbounds(2)]);
v=axis 

v =
     1    10     0   100

答案 1 :(得分:2)

关注@natan's answer我认为问题的解决方案是

不要使用[-inf inf]来自动调整轴限制。

如果您希望Matlab自动调整某些轴限制并手动设置其他轴限制,那么您应该对要设置的特定轴使用xlimylimzlim并且保持所有其他不变,以便Matlab可以自动设置它们 这样您就不会覆盖Matlab为这些轴指定的值,您可以使用axisxlimylimzlim来读取它们。

请参阅@ natan的更正代码答案。