-1

在下面的程序中,我想改变它的值Trial并想运行它一千次,计算每次试验中出现的Nin (迭代)。D

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

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

4

1 回答 1

1

count值似乎没有任何目的,因为您希望 D 保留3-by-1。简单的解决方法是将分配更改D为:

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

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

于 2013-10-22T23:39:59.393 回答