-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 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 つだけ持つ必要があります。各プロットの後に再適用する必要はありません。

于 2013-02-09T00:21:02.297 に答える
0

これを行う最善の方法は、すべてを 1 つの "plot" コマンドに入れることです。

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;

新しい Figure ウィンドウの生成は、複数のウィンドウを開きたい場合に役立ちます。新しい Figure ウィンドウを生成した後、必要なだけホールドをオンにすることができます。

于 2013-02-09T00:32:43.307 に答える