我有一个很大的for循环,可以产生很多图形。我正在为代码添加功能,并希望可以选择在将一系列图形放入带有子图的单个图形之间切换,或者将图形绘制为单独的图形。我尝试使用以下代码执行此操作,但它不起作用。
figure
if (SubplotOPT == 0)
subplot(2,2,1);
end
这个想法是,如果不满足SubplotOPT == 0那么代码将生成一个单独的数字,但是,我认为matlab正在制作一个子图,而不管if语句。
答案 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