MATLAB:在for循环

时间:2015-05-13 14:07:46

标签: matlab for-loop plot matlab-figure subplot

我试图在一个图中绘制几个子图。 子图的总数取决于矩阵中的最大值:< i'的最大值。 我希望在i的每个值中将两个变量绘制在彼此之下的两个子图中:slagtijd_start & slagfrequentie_start

因此,当i = 3的最大值时,我们有一个2x3轴的子图矩阵, 如果i = 4 - > 2x4轴等。

绘制右侧位置的工作原理,除了matlab删除前面的子图(i的前一个值)。在这种情况下,i = 3,图中只显示两个最新的子图。我已经尝试了不同的事情,并坚持不懈地努力。但我无法弄明白。这可能是一个简单的伎俩。

我已经发布了我的代码以及下面的结果图,

提前致谢,

Mochje

figure(6)
hold on

for i = 1:max(piektijden_start(:,2))
    startnummer = find(piektijden_start(:,2) == i); 
    slagtijd_start= diff(piektijden_start(startnummer)); 
    slagfrequentie_start= (60./slagtijd_start);
    subplot(2,i,i),plot(piektijden_start(startnummer(1:end-1),1),slagtijd_start)
    hold on
    xlabel('Tijd [s]')
    ylabel('Slagtijd [s]')
    title('Slagtijd')

    subplot(2,i,i+i),plot(piektijden_start(startnummer(1:end-1),1),slagfrequentie_start)
    hold on
    plot(piektijden_start(startnummer(1:end-1),1),slagfrequentie_start,'.r')
    xlabel('Tijd [s]')
    ylabel('Slagfrequentie [N/min]')
    title('Slagfrequentie')
end

enter image description here

1 个答案:

答案 0 :(得分:2)

使用类似

的内容
figure(6)
hold on
max_i = max(piektijden_start(:,2));
for i = 1:max_i
    %// ...
    subplot(2, max_i, i)
    %// ...
    subplot(2, max_i, i+max_i)
    %// ...
end

subplot的第二个参数是子图列的数量。第三个是寻址的子图,这样第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推