在下面的程序中,我想更改Trial
的值,并希望运行它一千次,计算每次试用N
中D
的出现次数(< 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
我知道如何计算N
中D
的出现次数。问题是对于Trial = 2
,数组D
变为6x1,但我希望它在每次迭代中始终保持3x1。我该怎么做?
答案 0 :(得分:1)
count
值似乎没有任何意义,因为您希望D保持3-by-1
。简单的解决方法是将作业更改为D
:
D(q,:) = sum(C);
因为q
从1迭代到numel(p)
(即3),因此已经是你想要的计数器。