2013-02-09 139 views
-2

我是新来的MATLAB和我想要绘制在一个图的一些功能,比较它们的生长速度: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') 

但我得到的仅仅是最后一个函数。

回答

5

将您的hold命令更改为hold onhold本身就控制图的保持状态,这意味着如果你有:

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条线。由于一个人的生长速度比另一个人快得多,所以你可能需要仔细观察才能看到较慢的人。在那张纸上,当你把握住了所有的四条线时,你的第一个阴谋将增长得如此之快,以至于你不会真正看到其他三条线的大部分。

此外,你只需要有一个hold图形的命令;您不需要在每个情节之后重新应用它。

+0

我敢肯定他不会看到的第一个任意的多;它会非常快速地超过'double'的范围(我的猜测是'n == 9'和'n == 10'之间)。 – 2013-02-09 00:35:50

+0

@BenVoigt你是对的,n == 9会产生最后一个非无限的结果(在我的机器上) – alrikai 2013-02-09 01:15:20

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; 

生成一个新的数字窗口的路线是有用的。在生成一个新的数字窗口后,只要需要,您可以持续保持。

0

做到这一点,最好的办法是把一切都放在一个“阴谋”的命令:

n = [1:100]; 

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