查找满足条件的模拟的累积比例

时间:2012-11-27 21:22:40

标签: matlab matrix octave cumulative-sum

我有一个矩阵 A (100,5),其中每一行都是模拟的结果(n = 100)。

我想绘制/'记录' A 中的最大值小于0.40的模拟累积比例。我想象的图是垂直轴,其中值的范围是0到100%,水平轴是模拟的数量。

最终,我将在同一图表上绘制几个场景,其中至少有一个场景将在100个模拟标记处达到100%累积比例。

下面的代码是我已经走了多远,但我无法让累积比例下降。我认为我的矩阵 C 并不是我想要的。

干杯。

ts=1:1:100;
% Create A where all rows sum to 1
A = rand(100, 5); % @Nzbuu http://stackoverflow.com/q/9312850/1670053 for this ex 
rowsum = sum(A,2);
A = bsxfun(@rdivide, A, rowsum);

% Create a vector from A where each elements records whether the max value was less 
% than 0.40 (value = 0) or greater than 0.40 (value = 1)
counts = zeros(100,1);
for i = 1:100
    if max(A(i,:)) < 0.40
        counts(i) = 0;
    else
        counts(i) = 1;
    end;
end;

B = cumsum(counts); % Get the cumulative sum of counts
C = B/100
plot(ts, C)

0 个答案:

没有答案