计数1点的数量我有一个像下面的代码:如何从整体矩阵
N=10;
R=[1 1 1 1 1 0 0 0 0 0;1 1 1 1 1 1 1 1 1 1];
p=[0.1,0.2,0.01];
B = zeros(N , N);
B(1:N,1:N) = eye(N);
C=[B;R];
for q=p(1:length(p))
Rp=C;
for i=1:N
if(rand < p)
Rp(i,:) = 0;
end
end
end
从这个代码我改变的p
值。所以对于不同的价值p
,我得到了不同的Rp
。现在我想从每个Rp
矩阵中获得“1”的总数。这意味着可能是对于P1我得到Rp1 = 5,对于P2,Rp = 4。
例如
Rp1=[1 0 0 0 0;0 1 0 0 0;0 0 0 0 0],
Rp2=[1 0 0 0 0;0 1 0 0 0;1 0 0 0 0],
Rp3=[0 0 0 0 0;0 1 0 0 0;0 0 0 0 0],
因此总的结果将是2,3,1。
我想得到这个结果。
想过'sum(Rp)'?因为你只有1个,这将是最简单的方法... – thewaywewalk
'总和(Rp(:))'将工作,因为Rp是二进制的。'(:)'通过首先对矩阵进行线性化来使得它总和所有的维数 – Dan
是的,我知道但是我需要将所有的1加在一起求和。例如,Rp = [1 0 0 0 0; 0 1 0 0 0; 0 0 0 0 0]然后我的Rp = 2。我不能做到这一点。我需要得到所有值的Rp值。 –