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 :
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
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
Évidemment ça ne fonctionne et j'avoue être complètement bloqué ?
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 ........
Pourriez-vous m'aider ?
Merci d'avance pour vos réponses !![]()
Partager