UNIX Matlab-计算循环图,但显示在最后

时间:2018-12-03 09:44:15

标签: matlab plot hide figure

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

% 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

此函数在一个循环中被调用多次,反复绘制相同的图形。 我希望计算每个图,但要等到以后再显示。这是因为这些图当前显示并实时更新,这使脚本速度变慢。我宁愿计算但要隐藏它们,而不是存储所有数据并在最后绘制它们。 谢谢

1 个答案:

答案 0 :(得分:0)

我认为您需要进行一些重组,以便您的函数将变量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