-2

我是 matlab 新手,我试图在一个图上绘制一些函数来比较它们的增长率:

n = [1:100];

plot(n, 2.^(2.^n), 'b')
hold
plot(n, 2.^n, 'r');
hold
plot(n, n.^log2(n), 'g') 
hold   
plot(n, n.^2, 'm')

但我得到的只是最后一个功能。

4

3 回答 3

5

将您的hold命令更改为hold on. hold本身只是切换图形的保持状态,这意味着如果你有:

plot(...)   %plot 1
hold
plot(...)   %plot 2
hold
plot(...)   %plot 3
hold
plot(...)   %plot 4

这相当于:

plot(n, 2.^(2.^n), 'b')   %plot 1
hold on
plot(n, 2.^n, 'r')   %plot 2 --> figure is held
hold off
plot(n, n.^log2(n), 'g')   %plot 3 --> figure isn't held
hold on
plot(n, n.^2, 'm')   %plot 3 --> figure is held

所以最后,根据您的原始代码,您应该绘制 2 行。由于一个的增长速度比另一个快得多,您可能需要仔细观察才能看到较慢的一个。在那一点上,当您按顺序绘制所有 4 行时,您的第一个图将增长得如此之快,以至于您不会真正看到其他 3 行的大部分内容,就像抬头一样。

此外,您只需要为图形设置 1 个保持命令;您无需在每次绘图后重新应用它。

于 2013-02-09T00:21:02.297 回答
0

最好的方法是将所有内容放在一个“绘图”命令中:

n = [1:100];

plot(n, 2.^(2.^n), 'b', n, 2.^n, 'r', n, n.^log2(n), 'g', n, n.^2, 'm');
于 2013-02-09T01:37:26.373 回答
0

尝试这个:

n = [1:100];
figure 
hold on;
plot(n, 2.^(2.^n), 'b');
plot(n, 2.^n, 'r');
plot(n, n.^log2(n), 'g'); 
plot(n, n.^2, 'm');
hold off;

当您想要打开多个窗口时,生成一个新的图形窗口很有用。生成新的图形窗口后,您可以根据需要打开保持。

于 2013-02-09T00:32:43.307 回答