我是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')
但我得到的只是最后一个功能。
答案 0 :(得分: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个保持命令;你不需要在每个情节之后重新应用它。
答案 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');