InfectionMatrix = zeros(100,100); InfectionMatrix(50,50) = 1; for k = 1:1:45 %Finds the infected Nodes
[i,j] = find(InfectionMatrix > 0.7); %Random Number Generator
a = 0.0270; b = 0.3250; RANDOM = (b-a).*rand(8,1) + a; %Discard the nodes on the edge
i(i == 1) = []; i(i == length(InfectionMatrix)) = []; j(j == 1) = []; j(j == length(InfectionMatrix)) = []; %Infection Spreads to all surrounding
%elements in the matrix
InfectionMatrix(i-1,j) = InfectionMatrix(i-1,j)+ RANDOM(1); InfectionMatrix(i-1,j+1) = InfectionMatrix(i-1,j+1)+ RANDOM(2); InfectionMatrix(i-1,j-1) = InfectionMatrix(i-1,j-1)+ RANDOM(3); InfectionMatrix(i,j+1) = InfectionMatrix(i,j+1)+ RANDOM(4); InfectionMatrix(i,j-1) = InfectionMatrix(i,j-1)+ RANDOM(5); InfectionMatrix(i+1,j+1) = InfectionMatrix(i+1,j+1) + RANDOM(6); InfectionMatrix(i+1,j-1) = InfectionMatrix(i+1,j-1) + RANDOM(7); InfectionMatrix(i+1,j) = InfectionMatrix(i+1,j) + RANDOM(8); rng('shuffle') %Maximum "Infection" Value is 100
TooHigh = find(InfectionMatrix > 100); for m = 1:1:length(TooHigh) InfectionMatrix(TooHigh(m)) = 100; end end %Gives a Representation of the Infection
h = heatmap(InfectionMatrix)
If an infected node is found that exists in a row number 50+ I want the RANDOM increase to be halfed, rather than the standard RANDOM increase.
Best Answer