Создание гистограмм расстояния от начала координат для 2D случайных бродяг - PullRequest
0 голосов
/ 20 сентября 2018

Допустим, вы можете показать распределение в пространстве позиций большого количества случайных бродяг в трех разных временных точках.На этот вопрос был дан ответ на мой предыдущий вопрос , и с некоторыми изменениями это прекрасно.

clc;
close all;
M = 1000; % The amount of random walks.
steps = [100,200,300]; % here we analyse the step 10,200 and 1000
cc = hsv(length(steps)); % manage the color of the plot
%generation of each random walk
x = sign(randn(max(steps),M));
y = sign(randn(max(steps),M));
xs = cumsum(x);
xval = xs(steps,:);
ys = cumsum(y);
yval = ys(steps,:);

hold on
for n=1:length(steps)
    plot(xval(n,:),yval(n,:),'o','markersize',1,'color',cc(n,:),'MarkerFaceColor',cc(n,:));
end

legend('100','200','300')
axis square
grid on;

Теперь вопрос, могу ли я каким-то образом использовать функции hist() и subplot(), чтобы показать расстояние от источника случайных бродяг в трех отдельных временных точках, или, думаю, большеНо три для простоты.

Я не уверен, как это сделать, кроме создания распределений случайных бродяг в трех точках времени.

1 Ответ

0 голосов
/ 20 сентября 2018

Я надеюсь, что я понял ваш вопрос, я думаю, что вы хотите использовать bar график с опцией стека.

Я использовал ответ @LuisMendo на мой вопрос , чтобы повысить эффективность кода.

steps = [10,200,1000]; % the steps
M     = 5000; % Number of random walk
DV    = [-1 1]; % Discrete value
p     = .5; % probability of DV(2)
% Using the @LuisMendo binomial solution:
for ii = 1:length(steps)
    xval(ii,:) = (DV(2)-DV(1))*binornd(steps(ii), p, M, 1)+DV(1)*steps(ii);
    yval(ii,:) = (DV(2)-DV(1))*binornd(steps(ii), p, M, 1)+DV(1)*steps(ii);
end
[x, cen] = hist(sqrt(xval.^2+yval.^2).'); %where `sqrt(xval.^2+yval.^2)` is the euclidian distance
bar(cen,x,'stacked');
legend('10','200','1000')
axis square
grid on;

Увеличьте количество бинов в функции гистограммы, чтобы повысить точность графика.

Результаты:

enter image description here

...