在matlab中通过概率值改变一个值

Yus*_*sef 1 matlab

我想按概率值更改变量,例如我在 matlab 中有 [ 0 0 1 1 1 1 0 1 ] 并以概率 = 0.01更改它的任何元素,我如何在 matlab 中实现这一点?(我想在 GA 中使用它,并且 p =0.01 进行染色体 Gen 的突变)感谢任何帮助

Jon*_*nas 5

首先,确定您想要更改的所有元素

array = [0 0 1 1 1 1 0 1];
sizArray = size(array);
probability = 0.01;

toChangeIdx = rand(sizArray) < probability;
Run Code Online (Sandbox Code Playgroud)

然后,您可以在需要的地方翻转零和一

array(toChangeIdx) = 1-array(toChangeIdx);
Run Code Online (Sandbox Code Playgroud)