我需要对大小为mXn的矩阵的每个元素执行以下操作: 1.以0.3的成功概率翻转一枚硬币。 2.如果成功,则将元素设置为零。 3.否则转到下一个元素。
我使用了以下代码,但它没有给出任何输出并产生NaN,C是大小为mXn的矩阵:
index = (rand(size(C)<=0.3));
one_index = find(index ==1);
C(one_index) = 0;
答案 0 :(得分:3)
问题在于这句话
index = (rand(size(C)<=0.3));
你弄乱了括号,所以你试图比较size(C) <= 0.3
。这将返回[0 0]
,从而导致rand
创建一个空矩阵。
此外,无需拨打find
。
C = magic(4);
index = rand(size(C)) <= 0.3;
C(index) = 0
C =
16 2 3 13
0 11 10 8
9 7 6 0
4 0 15 1