如何在matlab中从函数输出中生成图形

时间:2013-10-28 10:48:38

标签: matlab

我完全迷失在此使用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)

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

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

非常感谢

2 个答案:

答案 0 :(得分: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,它对2*(random>=p)-1生成的+ 1 / -1值序列进行累加求和。

包含p=0.5M=2000的示例图表:

enter image description here

答案 1 :(得分: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 = 1000enter image description here