我想按概率值更改变量,例如我在 matlab 中有 [ 0 0 1 1 1 1 0 1 ] 并以概率 = 0.01更改它的任何元素,我如何在 matlab 中实现这一点?(我想在 GA 中使用它,并且 p =0.01 进行染色体 Gen 的突变)感谢任何帮助
首先,确定您想要更改的所有元素
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)