Установить элементы матрицы на ноль с вероятностью, используя MATLAB - PullRequest
0 голосов
/ 06 октября 2011

У меня есть матрица A размера mXn, и я хотел бы установить некоторые из ее элементов на ноль в зависимости от следующих критериев: я просматриваю каждый элемент матрицы и подбрасываю монету, вероятность успеха которой равна 0,3, еслиэто успех, я устанавливаю элемент на ноль, иначе я перехожу к следующему элементу.Я хочу сделать это MATLAB, а также иметь индексы элементов, которые были изменены с использованием вышеуказанных критериев.Я попытался использовать следующее:

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

Я не уверен, как включить это в самой матрице А.

Ответы [ 3 ]

4 голосов
/ 08 ноября 2012

Или просто:

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

2 голосов
/ 06 октября 2011

Я думаю, что вы хотите

I = (rand(size(A)) < 0.3);
A(I) = 0;

Но я, возможно, неправильно понял вопрос.

1 голос
/ 06 октября 2011

Первый поиск предметов, которые соответствуют вашему состоянию

zero_index = find( rand( size( A ) ) <= 0.3 ) );

Заменить эти предметы на ноль

A( zero_index ) = zeros( size( zero_index ) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...