在Matlab

时间:2015-07-16 19:00:24

标签: matlab

有没有办法在matlab中动态创建子图?

我有一个变量 X ,用于确定要绘制的图表数量,我想知道是否有办法动态创建这些图表,因为 X 会因到某种情况

我目前预先分配了子图的数量,如下所示:

figure

ax1 = subplot(3,1,1); 
ax2 = subplot(3,1,2); 
ax3 = subplot(3,1,3); 

plot(ax1,ins,state_vec(:,1),'b',x,100,'r','LineWidth',2)
plot(ax2,ins,state_vec(:,2),'b',x,100,'r','LineWidth',2)
plot(ax3,ins,state_vec(:,3),'b',x,100,'r','LineWidth',2)

1 个答案:

答案 0 :(得分:1)

如果你只希望它们在一个列中(就像你现在拥有它们一样),一个简单的for循环应该这样做:

figure

for i = 1:X
    axi = subplot(X,1,i)
    plot(axi,ins,state_vec(:,i),'b',x,100,'r','LineWidth',2)
end

如果你想要一个网格,你必须比这更聪明,但你可以用两个for循环来做。如果可以,请尝试R + ggplot2! :)