【问题标题】:Plotting brownian motion matlab绘制布朗运动matlab
【发布时间】:2016-09-22 07:05:42
【问题描述】:

首先,我只想说我不习惯使用matlab,但我需要一个作业,我应该创建一个“布朗运动”。我的代码目前看起来像这样:

clf
hold on
prompt = 'Ge ett input';
size = input(prompt) ;
numParticles = input('Ange antal partiklar');
axis([-size size -size size]);
Part = [];
color = 'brkgmyco';
for i = drange(1:numParticles)
   Part = [Part [0;0]];
end
for i = drange(1:200)

    dxdy = randn(2,numParticles);
    k = Part
    Part = Part + dxdy;

我关心的是如何打印,我什至希望每次打印都有一点延迟,这样您就可以真正看到作业发生了什么,这可以从我现在编写的代码中实现还是应该什么被改变?提前致谢!

【问题讨论】:

  • 你可以用Part = zeros(2,numParticles);替换你的第一个循环
  • 这里有pause 命令。

标签: matlab matlab-figure scatter-plot


【解决方案1】:

以下是您的代码的一些基本问题,无论您尝试做什么:

  1. 您使用size 作为变量名。这样做会覆盖 MATLAB 的函数 size
  2. 函数zeros 创建一个由零初始化的数组,不需要循环。
  3. 无需在循环中计算 200 次 randn,您可以使用 dxdy = randn(2,numParticles,200) 计算一次,然后在循环中简单地引用 dxdy(:,:,i)
  4. 求和也是如此。不要在循环中求和以获得累积和,而是使用 cumsum(如 Part = cumsum(randn(2,numParticles,200),3);),然后在循环内引用 Part(:,:,i)

现在开始你的任务。你说你想知道如何打印,但我相信你想绘图,因为你使用了一些命令,如axisclfhold,它们指的是图形对象。但是,您永远不会真正策划任何事情。
在 2D 中绘图的基本和通用函数是 plot,但还有许多其他更具体的函数。其中之一是scatter,它有一个姊妹函数gscatter,它采用xygroup 的三元组,并绘制每个(x(k),y(k)) 用它们的group(k) 着色。

此代码在轴上绘制粒子,并为其运动设置动画:

prompt = 'Ge ett input';
scope = input(prompt) ;
numParticles = input('Ange antal partiklar');
N = 500;
Part = cumsum(randn(2,numParticles,N)*scope/100,3);
h = gscatter(Part(1,:,1),Part(2,:,1),1:numParticles);
axis([-scope scope -scope scope]);
legend off
for k = 2:N
    for p = 1:numParticles
        h(p).XData = Part(1,p,k);
        h(p).YData = Part(2,p,k);
    end
    drawnow
end

这是你要找的吗?

【讨论】:

  • 抱歉,刚回到家又开始研究它,试试你的代码,看看我是否也能理解它:)
  • 认为我在您的帮助下解决了它,好吧,您解决了它,但我需要我理解的代码:),非常感谢您的帮助,非常感谢!
  • 如果您以您理解的方式重新编写它会更好!
  • 我正在为matlab做另一个练习,我想知道你是否也可以帮助我做那个......我应该做一个棋盘,我知道如何生成一个对应于1的矩阵:s 和 0:s,我想把 0:s 画成白色,把 1:s 画成黑色,矩阵是希尔伯特矩阵,如果这能说明你的话
  • 我不明白棋盘和希尔伯特之间有什么联系,但是要绘制不同颜色的矩阵,请查看imagesc,对于希尔伯特矩阵,请查看hilb
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
相关资源
最近更新 更多