我有一个大小为mXn的矩阵A,我想根据以下标准将其中一些元素设置为零: 我浏览矩阵的每个元素并翻转一个成功概率为0.3的硬币,如果成功,我将元素设置为零,否则我将继续下一个元素。我希望这样做是MATLAB,并且还具有使用上述标准更改的元素索引。我尝试使用以下内容:
B = (rand(size(A)) <= 0.3);
我不知道如何在矩阵A本身中启用它。
答案 0 :(得分:4)
或者简单地说:
A( rand( size(A) ) < 0.3 ) = 0;
答案 1 :(得分:2)
我认为你想要的是
I = (rand(size(A)) < 0.3);
A(I) = 0;
但我可能误解了这个问题。
答案 2 :(得分:1)
首先搜索符合条件的项目
zero_index = find( rand( size( A ) ) <= 0.3 ) );
将这些项目替换为零
A( zero_index ) = zeros( size( zero_index ) )