【问题标题】:MATLAB: plotting subplots in for loopMATLAB:在 for 循环中绘制子图
【发布时间】:2015-07-24 21:20:42
【问题描述】:

我正在尝试在一个图中绘制多个子图。 子图的总数取决于矩阵中的最大值:“i”的最大值。 我想为 i 的每个值在两个子图中绘制两个变量:slagtijd_start & slagfrequentie_start

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

在正确的位置上绘图是可行的,除了 matlab 会擦除以前的子图(i 的以前值)。在这种情况下 i = 3 并且该图仅显示两个最新的子图。我用'hold on'等尝试了不同的东西。但我想不通。这可能是一个简单的技巧。

我已经在下面发布了我的代码和结果图,

提前致谢,

莫赫耶

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

【问题讨论】:

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


    【解决方案1】:

    使用类似的东西

    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 的第二个参数是子图列的数量。第三个是寻址的子图,这样第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推

    【讨论】:

      猜你喜欢
      • 2016-02-09
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多