Я новичок в использовании matlab и пытаюсь понять, есть ли способ оптимизировать мой код.По сути, у меня есть данные из выходных данных модели, и мне нужно построить их с помощью Matlab.Кроме того, у меня есть справочные данные (с доверительными интервалами 95%), которые я нанесу на тот же график, чтобы получить наглядное представление о том, насколько близки выходные данные модели и справочные данные.
С точки зрения выходных данных модели у меня есть несколько тысяч файлов (последовательно), которые я открываю в цикле и строю график.Проблема / вопрос, который я имею, состоит в том, могу ли я предварительно обработать данные и затем построить график позже, чтобы сэкономить время.Проблема, с которой я, похоже, сталкиваюсь, заключается в том, что у меня есть легенда, которая либо не отображается, либо является неточной.
Мой код (извините, если он не элегантный):
fn= xlsread(['tbobserved' '.xls']);
time= fn(:,1);
totalreference=fn(:,4);
totalreferencelowerci=fn(:,6);
totalreferenceupperci=fn(:,7);
figure
plot(time,totalrefrence,'-', time, totalreferencelowerci,'--', time, totalreferenceupperci,'--');
xlabel('Year');
ylabel('Reference incidence per 100,000 population');
title ('Total');
clickableLegend('Observed reference data', 'Totalreferencelowerci', 'Totalreferenceupperci','Location','BestOutside');
xlim([1910 1970]);
hold on
start_sim=10000;
end_sim=10005;
h = zeros (1,1000);
for i=start_sim:end_sim %is there any way of doing this earlier to save time?
a=int2str(i);
incidenceFile =strcat('result_', 'Sim', '_', a, 'I_byCal_total.xls');
est_tot=importdata(incidenceFile, '\t', 1);
cal_tot=est_tot.data;
magnitude=1;
t1=cal_tot(:,1)+1750;
totalmodel=cal_tot(:,3)+cal_tot(:,5);
h(a)=plot(t1,totalmodel);
xlim([1910 1970]);
ylim([0 500]);
hold all
clickableLegend(h(a),a,'Location','BestOutside')
end
По сути, я надеялся получить способ чтения данных, а затем построить график позже - т.е.оптимизировать код.
Надеюсь, вы сможете помочь.
Спасибо.
mp