私は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')
しかし、私が得るのは最後の機能だけです。
私は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')
しかし、私が得るのは最後の機能だけです。
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 つの "plot" コマンドに入れることです。
n = [1:100];
plot(n, 2.^(2.^n), 'b', n, 2.^n, 'r', n, n.^log2(n), 'g', n, n.^2, 'm');
これを試して:
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 ウィンドウを生成した後、必要なだけホールドをオンにすることができます。