1

使用 MATLAB 函数我完全迷失了,所以情况如下:假设我有 SUM=0,并且我有用户给我的恒定概率 P,我必须将这个常数 P 与其他 M 进行比较(用户也给出 M)随机概率,如果 P 较大,我将 1 添加到 SUM,如果 P 较小,我将 -1 添加到 SUM ......最后我想在屏幕上打印过程图。

到目前为止,我设法用这段代码只做了一个阶段:

function [result] = ex1(p)
if (rand>=p) result=1;
else result=-1;
end

(就像M = 1)

您如何建议我修改此代码以使其按照我之前描述的方式工作(包括获取图表)?

还是我的逻辑错了?问题说我以概率 P 得到 1,以概率 (1-P) 得到 -1,并且 SUM 是相同的

非常感谢

4

2 回答 2

1

你可以这样做:

p = 0.25; % example data
M = 20; % example data

random = rand(M,1); % generate values
y = cumsum(2*(random>=p)-1); % compute cumulative sum of +1/-1
plot(y) % do the plot

这里的重要函数是cumsum,它对由 生成的 +1/-1 值序列进行累积和2*(random>=p)-1

p=0.5带有, 的示例图M=2000

在此处输入图像描述

于 2013-10-28T10:56:10.937 回答
1

我不确定你是如何实现你的输入的,但这应该能让你上路:

p = 0.5;            % Constant probability
m = 10;
randoms = rand(m,1) % Random probabilities

results = ones(m,1);
idx = find(randoms < p)

results(idx) = -1;

plot(cumsum(results))

对于m = 1000在此处输入图像描述

于 2013-10-28T11:02:54.290 回答