具有多个分子/粒子的布朗运动[Matlab]
问题描述:
我想用多个分子/粒子对布朗运动进行建模并对它们进行动画处理。到目前为止,我已经拿出了这个代码解决方案,但我无法得到期望的结果。以下是我的代码具有多个分子/粒子的布朗运动[Matlab]
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
有谁能告诉我为什么我无法获得理想的结果吗?
编辑
期望的结果:要使用“的DrawNow”功能动画的分子运动
答
你有h(p).YData = x(k,p);
其更改为h(p).YData = y(k,p);
它绘制相同的数字相互权现在,这就是为什么你得到一条直线。
+0
哎呀!我怎么错过了? :) 谢谢! – nashynash
*所需的结果*。那么,它完全取决于你的愿望!如果你希望代码输出纸杯蛋糕,我们不能帮忙。如果你的愿望是别的,那么请告诉我们,因为我们可能会提供帮助。 –
@AnderBiguri我已添加编辑:) – nashynash
为什么它不起作用?你的代码看起来与[这里]的答案非常相似(https://stackoverflow.com/questions/39632393/plotting-brownian-motion-matlab),而且代码的工作原理是 –