Я заглянул в справочник Matlab и различные посты, но, похоже, ничего не подходит. Вы найдете проблемный код ниже.
Мой код работает нормально, однако я не уверен насчет циклов для Year и PartOfYear. Я хочу, чтобы мой код выполнялся для года = 2008: 2016 и для PartOfYear = 1: 2, однако, когда год = 2017, он должен выполняться только для PartOfYear = 1. То есть, нет PartOfYear = 2, когда год = 2017.
Есть ли более эффективный (или даже правильный, как мой, вероятно, неверный) способ сделать это?
В данный момент я просто попытался снова запустить PartOfYear = 1 всякий раз, когда он попадает в Year = 2017, PartOfYear = 2, и, таким образом, просто выполнить эту часть кода дважды, но я считаю, что это неверно и неэффективно, так как результаты кажутся быть выключенным.
Спасибо!
for index = 1:20
StartYearData = 2008;
EndYearData = 2017;
for Year = StartYearData:EndYearData
for PartOfYear = 1:2
if PartOfYear == 1
StartDayData = 1;
StartMonthData = 1;
EndDayData = 30;
EndMonthData = 6;
elseif PartOfYear == 2
StartDayData = 1;
StartMonthData = 7;
EndDayData = 31;
EndMonthData = 12;
% THIS IS THE WAY I USE TO TRY AND FIX MY PROBLEM
% BUT I BELIEVE IT IS WRONG OR AT LEAST INEFFICIENT:
if Year == 2017
PartOfYear = 1; StartDayData = 1; StartMonthData = 1;
EndDayData = 30; EndMonthData = 6;
end
end
% DO A LOT OF THINGS
end