0

我有一个很大的 for 循环,可以生成很多图表。我正在向代码添加功能,并希望可以选择在将一系列图形放入带有子图的一个图形中或将图形绘制为单个图形之间切换。我尝试使用以下代码执行此操作,但它不起作用。

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

这个想法是,如果不满足 SubplotOPT == 0 则代码将生成一个单独的图形,但是,我认为 matlab 正在制作一个子图,而不管 if 语句如何。

4

3 回答 3

1

我对之前的两个解决方案都不满意,所以这是我的尝试:

% 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 回答