2

我正在创建一个 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 限制 = [0,100] 的抛物线图。但是,ylim = [-inf, inf]。

任何帮助,将不胜感激!

/ 威尔伯

4

2 回答 2

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
于 2013-02-14T07:55:40.227 回答
2

看着@natan 的回答,我认为您的问题的解决方案是

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

如果您希望 Matlab 自动调整您的某些轴限制并手动设置其他轴,那么您应该使用xlim,ylimzlim用于您希望设置的特定轴并保持所有其他轴不变,以便 Matlab 可以自动设置它们。这样您就不会覆盖 Matlab 分配给这些轴的值,
并且您将能够使用axis、或读取它们。xlimylimzlim

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

于 2013-02-14T08:08:35.593 回答