2013-02-09 61 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');