0

たくさんのグラフを生成する大きなforループがあります。コードに機能を追加していて、一連のグラフをサブプロットを使用して1つの図に入れるか、グラフを個々の図としてプロットするかを切り替えるオプションが必要です。次のコードを使用してこれを実行しようとしましたが、機能しません。

 figure
 if (SubplotOPT == 0)
  subplot(2,2,1);
 end

SubplotOPT == 0が満たされない場合、コードは個別の図を生成するという考え方ですが、MATLABはifステートメントに関係なくサブプロットを作成していると思います。

4

3 に答える 3

1

私は前の 2 つの解決策のどちらにも満足できなかったので、ここに私のやり方を示します。

% Should we add a subplot, or create a new figure & axes 
if (SubplotOpt == 0)
  ax = subplot(2,1,1);
else
  f = figure;
  ax = axes();
end

plot( 0:.01:2*pi, sin(0:.01:2*pi), 'Parent', ax);

基本的に、サブプロット/図コードをプロット コードから抽象化したので、読みやすく編集しやすくなりました。

于 2013-02-27T01:09:25.437 に答える
1

これを試して:

for i=1:3
figure(i)   
    if i==3
        subplot(2,1,1)
           plot(rand(1,100))
    else
           plot(rand(1,100))
    end
end

ここでは、通常の図がループ内に作成され、特定の条件の場合にのみサブプロット図が作成されます。

于 2013-02-26T23:27:59.963 に答える
0
if (SubplotOPT == 0)
    subplot(2,2,1);
else
    subplot(1,1,1);
end
于 2013-02-26T23:28:39.793 に答える