matlab绘制多个函数

时间:2013-02-09 00:12:27

标签: 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')

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

3 个答案:

答案 0 :(得分: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条线。由于其中一个以比另一个快得多的速度增长,因此您可能需要仔细查看较慢的速度。在那个注意事项中,当你按顺序抓住并且绘制所有4条线时,你的第一个曲线将增长得如此之快,以至于你不会真正看到其他3条线的大部分,就像抬头一样。

此外,您只需要为该图设置1个保持命令;你不需要在每个情节之后重新应用它。

答案 1 :(得分: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;

当您想要打开多个窗口时,生成一个新的图形窗口非常有用。生成新的图形窗口后,您可以根据需要随时按住。

答案 2 :(得分:0)

执行此操作的最佳方法是将所有内容放在一个“plot”命令中:

n = [1:100];

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