使用MATLAB将矩阵元素设置为零

时间:2011-10-06 07:43:51

标签: matlab matrix

我有一个大小为mXn的矩阵A,我想根据以下标准将其中一些元素设置为零: 我浏览矩阵的每个元素并翻转一个成功概率为0.3的硬币,如果成功,我将元素设置为零,否则我将继续下一个元素。我希望这样做是MATLAB,并且还具有使用上述标准更改的元素索引。我尝试使用以下内容:

B = (rand(size(A)) <= 0.3);

我不知道如何在矩阵A本身中启用它。

3 个答案:

答案 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 ) )