布朗运动与多个分子/粒子[Matlab]

时间:2017-10-19 14:28:44

标签: matlab statistics

我想用多个分子/粒子模拟布朗运动并为它们制作动画。到目前为止,我已经提出了这个代码解决方案,但我无法获得所需的结果。以下是我的代码

N   =  500;  % number of samples
tau = .1;    % time interval in seconds
D   =  10;   % diffusion coefficient
NumMolecules  =  500;  % number of moelcues to be released
k  = sqrt(2*D*tau);   % scaling factor
dx = k * randn(N,NumMolecules);
dy = k * randn(N,NumMolecules);
x  = cumsum(dx);
y  = cumsum(dy);
h  = gscatter(x(1,:),y(1,:),1:NumMolecules,'b');
for k = 2:N
    for p = 1:NumMolecules
        h(p).XData = x(k,p);
        h(p).YData = x(k,p);
    end
    drawnow limitrate
end
drawnow

有谁能告诉我为什么我无法获得理想的结果?

修改

期望的结果:使用'drawow'功能动画分子的运动

1 个答案:

答案 0 :(得分:2)

h(p).YData = x(k,p);将其更改为h(p).YData = y(k,p);

它现在正在相互绘制相同的数字,这就是为什么你得到一条直线。