Я моделирую распространение болезни, и я хочу создать изображение, которое будет иметь место при первом заражении в пикселе матрицы.Убедиться, что значения не перезаписываются в Matlab
Так я получил это:
for t=1:30
infected=calc_infected(susceptibles, disease, row, col);
if t < 8 % The infection occurs in the first week in these pixels
LM(find(infected > 0))= 2
elseif t>=8 && t<15 % The infection occurs in the second week in these pixels
LM(find(infected > 0))= 3;
elseif t>=15 && t<22
LM(find(infected > 0))= 4;
elseif t>=22 && t<30
LM(find(infected > 0))= 5;
end
T время в днях. LM - это моя карта, на которой я строю свои данные. Заражена матрица, которая содержит временную эволюцию инфекции. Мой вопрос: как я хочу показать, что происходит первая инфекция, как я могу убедиться, что значение пиксела не будет перезаписано, когда оно станет зараженным во второй раз, но в другой классификации времени? Например. если пиксель уже имеет значение 2, потому что он заражен при t = 5, но он снова заражается при t = 25, он может быть перезаписан на значение 5.
Спасибо!
Не связанный с вашим вопросом: вы должны использовать логическую индексацию, 'LM (зараженный> 0) = 2' (если' LM' и 'зараженные' имеют одинаковый размер), и вместо всех этих' elseif 'вы могли бы также используйте 'switch':' inds = infected> 0; switch t, case num2cell (1: 7), LM (inds) = 2; case num2cell (8:14), LM (inds) = 3; case num2cell (15:21), LM (inds) = 4; case num2cell (22:29), LM (inds) = 5; end'. Вы также забыли обработать 't == 30'. –