clear all;
clc;
%% Creating a grid with random value
n = 64;
Gpop = rand(n,n);
temp=Gpop;
Gpop(temp(:,:)<0.99) = 1; %Healthy percentage 99%
Gpop(temp(:,:)>0.99 & temp(:,:)<0.994) = 2; %Healthy percentage .04%
Gpop(temp(:,:)>0.994 & temp(:,:)<0.998) = 3; %Healthy percentage .04%
Gpop(temp(:,:)>0.998) = 4; %Healthy percentage .02%
%% Our Rules of cellular automata
x = 2:n-1; % Intializing x and y values to access the cells of CA
y = 2:n-1;
rule = Gpop;
figure
count=0;
time = 0;
while(count<25)
rule((rule(x-1,y-1)==2)|(rule(x,y-1)==2)|(rule(x+1,y-1)==2)|(rule(x-1,y)==2)|(rule(x+1,y)==2)...
|(rule(x-1,y+1)==2)|(rule(x,y+1)==2)|(rule(x+1,y+1)==2) & time==1)=2 ; %1st Rule a
if((rule(x,y-1)==3)| (rule(x-1,y)==3)|(rule(x+1,y)==3)|(rule(x,y+1)==3) & time ==2);
rule(x,y)==2;
else((rule(x-1,y-1)==3)|(rule(x+1,y-1)==3)|(rule(x-1,y+1)==3)|(rule(x+1,y+1)==3) & time ==3);
rule(x,y)==2;
end
rule((rule(x-1,y-1)==3)|(rule(x,y-1)==3)|(rule(x+1,y-1)==3)|(rule(x-1,y)==3)|(rule(x+1,y)==3)...
|(rule(x-1,y+1)==3)|(rule(x,y+1)==3)|(rule(x+1,y+1)==3) & time==4)=3; %2nd rule
rule((rule(x-1,y-1)==4)|(rule(x,y-1)==4)|(rule(x+1,y-1)==4)|(rule(x-1,y)==4)|(rule(x+1,y)==4)...
|(rule(x-1,y+1)==4)|(rule(x,y+1)==4)|(rule(x+1,y+1)==4&time==6))=4; %3rd rule
newMatrix=rand(n,n);
newtemp=newMatrix;
newMatrix(newtemp(:,:)<=.1)=1;
newMatrix(newtemp(:,:)>.1)=0;
rule(((rule(x-1,y-1)==4)|(rule(x,y-1)==4)|(rule(x+1,y-1)==4)|(rule(x-1,y)==4)|(rule(x+1,y)==4)...
|(rule(x-1,y+1)==4)|(rule(x,y+1)==4)|(rule(x+1,y+1)==4)) & newMatrix(x,y)==1 & time == 8)=1; %1st part 4th rule
rule(((rule(x-1,y-1)==4)|(rule(x,y-1)==4)|(rule(x+1,y-1)==4)|(rule(x-1,y)==4)|(rule(x+1,y)==4)...
|(rule(x-1,y+1)==4)|(rule(x,y+1)==4)|(rule(x+1,y+1)==4)) & newMatrix(x,y)==0 & time == 10)=2; %1st part 4th rule
imagesc(rule)
axis off;
cmap = jet(4); % assign colormap
colormap(cmap)
hold on
L = line(ones(4), ones(4), 'LineWidth',2); % generate line
set(L,{'color'},mat2cell(cmap,ones(1,4),3)); % set the colors according to cmap
legend('H','I1','I2','D') %Addings Legends at the top right corner of image
count=count+1;
time = time+1;
pause(3.0)
end
Выше приведен код клеточного автомата для имитации 4-х этапов ВИЧ-инфекции. Когда я запускаю вышеуказанный код, правые боковые ячейки остаются без изменений, я очень старался найти что-то неправильно, но не могу.Мой клеточный код автомата не работает, так как я намерен его работать
Ниже приведены правила моих автоматов,
Правило 1: Если H клетка удовлетворяет, по меньшей мере, один из правил, перечисленных ниже, она становится I1 клетка на следующей стадии: (я) по меньшей мере один I1 в ближайшем соседе или втором ближайшем сосете; (ii) Не менее x I2-клеток в ближайшем соседе, y I2-ячейки во втором ближайшем соседе.
Правило 2: Ячейка I1 становится следующей ячейкой ячейки I2.
Правило 3: Ячейка I2 становится D-клеткой после шагов τ из-за иммунного распознавания и очистки.
Правило 4: D-ячейку можно заменить на ячейку I1 с вероятностью Pinf или заменить на H-ячейку с вероятностью (Prep-Pinf) на следующем шаге.
Я хочу знать, соответствует ли мой код этим правилам и какие изменения я должен сделать в своем коде, чтобы получить правильную симуляцию вируса. Пожалуйста, помогите мне с этим. Заранее благодарен
Что вы подразумеваете под правыми боковыми ячейками, так же как и без каких-либо изменений?? –
Я имею в виду, что ячейки 60-го столбца остаются неизменными после симуляции. Как и после запуска кода, появляется изображение с изменениями, происходящими в нем. Если вы правильно заметили изображение, правая сторона изображения останется без изменений, но этого не должно быть, я просто хочу знать недостатки в своем коде и изменения, которые я должен сделать, чтобы имитировать эти клеточные автоматы. Пожалуйста, помогите, я застрял между ними, и я не знаю. – Hari