Bonjour à tous,

Autant dire tout de suite que je suis un vrai débutant en programmation. Je suis étudiant en M2 de biologie et j'ai un petit projet à faire sous MATLAB même si je n'ai jamais eu de cours sur ce sujet...

Mon but est de modéliser un mouvement brownien (que l'on peut retrouver dans les trajectoires de certaines protéines membranaires dans une cellule).
J'ai déjà plus ou moins réussi à le modéliser en utilisant une marche aléatoire en 2D. Ceci dit, j'aimerais aller plus loin et insérer des zones où les conditions de déplacement seraient différentes (probabilité moins grande de se déplacer, baisse du coefficient de diffusion etc...) afin de modéliser un mouvement confiné.

Voici le script que j'ai déjà écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
% Marche aléatoire dans un espace à deux dimensions
ipmax=5; %nombre de particules
itmax=50000; %nombre de pas
J=rand; %rand correspond à une sélection aléatoire d'une valeur dans [0,1[
x(1)=100*J; %position initiale de la particule en X
y(1)=100*J; %position initiale de la particule en Y
opt={'r' 'g' 'k' 'b' 'm'}; %couleurs des trajectoires
hold on
for i=1:ipmax
    plot(x,y,opt{i})
    for i=1:itmax
        J=rand;
        if J<0.25
            x(i+1)=x(i)+1;
            y(i+1)=y(i);
        elseif (J>0.25)&&(J<0.5)
            x(i+1)=x(i)-1;
            y(i+1)=y(i);
        elseif (J>0.5)&&(J<0.75)
            x(i+1)=x(i);
            y(i+1)=y(i)+1;
        else
            x(i+1)=x(i);
            y(i+1)=y(i)-1;
        end
    end
end
axis ([-500 500 -500 500])
hold off
J'ai ensuite essayé ce type de commande pour créer des carrés/rectangles où je pourrai par la suite changer certaines conditions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
if (x(i+1)>100)&&(x(i+1)<200)&&(y(i+1)>100)&&(y(i+1)<200);
 
........
 
else 
 
........
Évidemment ça ne fonctionne et j'avoue être complètement bloqué ?

Pourriez-vous m'aider ?

Merci d'avance pour vos réponses !