【问题标题】:UNIX Matlab - Calculate plot in loop, but show at the endUNIX Matlab - 循环计算绘图,但在最后显示
【发布时间】:2019-05-04 14:05:32
【问题描述】:

我正在使用以下代码在函数内的给定图形中绘制茎图...

% plot - phase = 1,2 or 3, with different data each time
% Each phase is called more than once
figure(phase);
stem(1:length(phaseSystem),phaseFailureTimes);hold on

这个函数在一个循环中被多次调用,迭代地绘制在相同的图形上。 我希望计算每个图,但直到以后才显示。这是因为数字当前显示并实时更新,这会减慢脚本的速度。我宁愿计算但隐藏它们,而不是存储所有数据并在最后绘制它们。 谢谢

【问题讨论】:

    标签: matlab plot hide figure


    【解决方案1】:

    我认为您需要进行一些重组,以便您的函数将变量 phaseSystemphaseFailureTimes 的 3 个值输出为 n × 3 个矩阵。

    让我将此函数称为calculate_phase_failure。然后调用calculate_phase_failure 的脚本/函数可以累积结果。最后,最后一个单独的循环可以生成您的图。如果循环的每次迭代的元素数量不同,您可能需要使用元胞数组来累积结果。

    这是一个最简单情况的示例,其中元素的数量在循环的迭代之间是一致的。

    for i=1:n
         [phaseSystem(:,:,i), phaseFailureTime(:,:,i)] = calculate_phase_failure( <input variables> ); 
    end
    
    % now generate your plot
    for i=1:n
         for phase=1:size(phaseFailureTime,2)
               figure(phase);
               stem(1:size(phaseSystem,1), phaseFailureTime(:,phase,i))
         end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多