How can I add arrows to each integrin particle in my plot that is moving.
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
N=10; % number of integrins
L=100; % size of the domain 100nm
D=.01; % diffusion coefficient
dt=1; % time step
F=randi([1, 10],1); % force on the bond with a random number of 1 to 10
P_a=randi([0,1],1); % binding rate of a random number from 0 to 1
P_ub=1/(1.5*F); % unbinding rate based upon our previous values
Tmax=500; % max time
% Intialize our integrins
x=randi([0,360],N,1); % x-coordinates generated randomily for each integrin
y=randi([0,50],N,1); % y-coordinates generated for each 
state=ones(N,1); % Each integrin is set to an inactive state at 0
% our figure
figure;
axis([0 L 0 L]);
set(gca,'nextplot','replacechildren');
% position update
for t = 0:dt:Tmax
% colors for our integrin states
colors = repmat([1 0 0], N,1); % red for inactive state
colors(state == 2,:,:) = repmat([0 1 0],sum(state == 2),1);
% plotting our integrins
 scatter(x,y,50,colors,'filled');
 title(sprintf('Time=%.2f',t));
 drawnow;
     for i=1:N
         w=randi([0,1],1); 
         if state(i)==1
         dx=randi([-360,360],1);
         dy=randi([-50,50],1);
         x(i)=x(i)+dx;
         y(i)=y(i)+dy; 
         end 
     end
     x=mod(x,L);
     y=mod(y,L);
     for i=1:N
         w_1=randi([0,1],1);
         if w_1 < P_a && state(i)==1
             state(i)=2;
         end
     end
     for i=1:N
         w1=randi([0,1],1);
         if state(i)==2 && w1<P_ub
            state(i)=1;
         end
     end
    Displacement=sqrt((mean(x.^2))/N)
end
2 Commenti
  Walter Roberson
      
      
 il 2 Mag 2023
				What is the difference between this and https://www.mathworks.com/matlabcentral/answers/1956849-how-can-i-add-arrows-onto-the-particles-in-my-movie-that-indicate-there-movement-with-my-code-and-ho?s_tid=srchtitle
Risposte (1)
  LeoAiE
      
 il 2 Mag 2023
        Here is my shot at this! 
N=10; % number of integrins
L=100; % size of the domain 100nm
D=.01; % diffusion coefficient
dt=1; % time step
F=randi([1, 10],1); % force on the bond with a random number of 1 to 10
P_a=randi([0,1],1); % binding rate of a random number from 0 to 1
P_ub=1/(1.5*F); % unbinding rate based upon our previous values
Tmax=500; % max time
% Intialize our integrins
x=randi([0,360],N,1); % x-coordinates generated randomly for each integrin
y=randi([0,50],N,1); % y-coordinates generated for each
state=ones(N,1); % Each integrin is set to an inactive state at 0
% our figure
figure;
axis([0 L 0 L]);
set(gca,'nextplot','replacechildren');
% Initialize the previous positions
x_prev = x;
y_prev = y;
% position update
for t = 0:dt:Tmax
    % colors for our integrin states
    colors = repmat([1 0 0], N,1); % red for inactive state
    colors(state == 2,:,:) = repmat([0 1 0],sum(state == 2),1);
    % plotting our integrins
    scatter(x,y,50,colors,'filled');
    % Add arrows to each integrin particle
    hold on;
    quiver(x_prev, y_prev, x - x_prev, y - y_prev, 'k', 'AutoScale', 'off');
    hold off;
    title(sprintf('Time=%.2f',t));
    drawnow;
    for i=1:N
        w=randi([0,1],1);
        if state(i)==1
            dx=randi([-360,360],1);
            dy=randi([-50,50],1);
            x(i)=x(i)+dx;
            y(i)=y(i)+dy;
        end
    end
    % Update the previous positions and calculate the displacement vectors
    x_prev = x;
    y_prev = y;
    x=mod(x,L);
    y=mod(y,L);
    for i=1:N
        w_1=randi([0,1],1);
        if w_1 < P_a && state(i)==1
            state(i)=2;
        end
    end
    for i=1:N
        w1=randi([0,1],1);
        if state(i)==2 && w1<P_ub
            state(i)=1;
        end
    end
    Displacement=sqrt((mean(x.^2))/N);
end
0 Commenti
Vedere anche
Categorie
				Scopri di più su Read, Write, and Modify Image in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




