情节和子情节

时间:2013-02-26 23:16:26

标签: matlab plot subplot

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

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

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

3 个答案:

答案 0 :(得分: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

这里在循环中创建一个常规图形,其中仅针对特定条件创建子图图形。

答案 1 :(得分: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);

基本上我从绘图代码中抽象出了子图/图形代码,它使阅读和编辑更容易。

答案 2 :(得分:0)

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