我有一个很大的 for 循环,可以生成很多图表。我正在向代码添加功能,并希望可以选择在将一系列图形放入带有子图的一个图形中或将图形绘制为单个图形之间切换。我尝试使用以下代码执行此操作,但它不起作用。
figure
if (SubplotOPT == 0)
subplot(2,2,1);
end
这个想法是,如果不满足 SubplotOPT == 0 则代码将生成一个单独的图形,但是,我认为 matlab 正在制作一个子图,而不管 if 语句如何。
我对之前的两个解决方案都不满意,所以这是我的尝试:
% 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);
基本上我已经从绘图代码中抽象出子图/图形代码,它使阅读和编辑更容易。
尝试这个:
for i=1:3
figure(i)
if i==3
subplot(2,1,1)
plot(rand(1,100))
else
plot(rand(1,100))
end
end
这里在循环中创建了一个常规图形,其中仅针对特定条件创建了一个子图图形。
if (SubplotOPT == 0)
subplot(2,2,1);
else
subplot(1,1,1);
end