如何获得平均价值

时间:2013-10-22 13:00:40

标签: matlab

在下面的程序中,我想更改Trial的值,并希望运行它一千次,计算每次试用ND的出现次数(< em>即迭代)。

N     = 10;
B     = eye(N);
C     = zeros(1,N);
p     = [0.1 0.2 0.4];
count = 1;
Trial = 1;

for t = 1:Trial
    for q = 1:numel(p)
        for ii=1:N      
            X = B;
            X(ii, rand(size(p))<p(q)) = 0;

            A = max(bsxfun(@minus, X,C), 0);
            [~,idx] = max(A(sum(A,2)==1,:), [], 2);
            if ~isempty(idx)
                C(idx) = 1; 
            end
        end

        D(count,:) = sum(C);
        count = count+1; 

    end
end

我知道如何计算ND的出现次数。问题是对于Trial = 2,数组D变为6x1,但我希望它在每次迭代中始终保持3x1。我该怎么做?

1 个答案:

答案 0 :(得分:1)

count值似乎没有任何意义,因为您希望D保持3-by-1。简单的解决方法是将作业更改为D

D(q,:) = sum(C);

因为q从1迭代到numel(p)(即3),因此已经是你想要的计数器。