Я использую написанную мной функцию, которая загружает и анализирует данные временных рядов и строит фигуры с помощью вспомогательных участков, если ряд содержит что-то интересное.
Вот графическая часть кода:
if ~isempty(failure_x)
figure(call_n)
sgt = sgtitle(filename);
sgt.FontSize = 10;
subplot(5,1,1)
scatter([1: length(max_vol)], max_vol, '.')
set(subplot(5,1,1), 'XLim', [1, length(max_vol)])
subplot(5,1,2)
scatter([1:length(flow)], flow, '.')
set(subplot(5,1,2), 'XLim', [1, length(max_vol)])
subplot(5,1,3)
scatter([1: length(hlfv)], hlfv, '.')
set(subplot(5,1,3), 'XLim', [1, length(max_vol)])
subplot(5,1,4)
scatter([1: length(stats)], stats(:,2), '.')
set(subplot(5,1,4), 'XLim', [1, length(max_vol)])
subplot(5,1,5)
scatter(failure_x, failure_y)
set(subplot(5,1,5), 'XLim', [1, length(max_vol)])
end
Когда я вызываю эту функцию отдельно из командной строки, все отображается правильно, но когда я вызываю ее из цикла for,последний подзаголовок всегда представляется первым подзаговором из рисунка при следующем вызове функции из цикла for.В основном, на итерации 1, подплот (5,1,5) показывает данные из подполя итерации 2 (5,1,1).
Я добавил параметр "call_n", чтобы у фигур увеличивались числа фигур, передаваемые из цикла for, но это, похоже, не решило проблему.
Есть идеи?Я обычно пишу на python, поэтому уверен, что делаю глупости.
РЕДАКТИРОВАТЬ: Вот цикл, который вызывает функцию "detect_hlfv"
for i = 1:length(fnames)
fname = strcat(data_dir, fnames(i).name);
failures = detect_hlfv(fname, i);
if length(failures) > 0
disp("FAILURE!")
disp(fname);
end
end