我正在创建一个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]。
任何帮助将不胜感激!
/威尔伯
答案 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自动调整某些轴限制并手动设置其他轴限制,那么您应该对要设置的特定轴使用xlim
,ylim
或zlim
并且保持所有其他不变,以便Matlab可以自动设置它们
这样您就不会覆盖Matlab为这些轴指定的值,您可以使用axis
,xlim
,ylim
或zlim
来读取它们。
请参阅@ natan的更正代码答案。