RANDOM FLIPPING FROM 1 TO -1

3 次查看(过去 30 天)
Hi to all the users, I have tried a code in which numbers are changed from 1 to -1 turn by turn. But I need some condition.
  1. All elements are 1
  2. A random element of matrix is selected and changed from 1 to -1.
  3. The process goes till all the elements are changed from 1 to -1 randomly.
  4. Once the change happens it should be fixed. ie once 1 is changed to -1 it should remain fixed.
Hope i have cleared my idea.....
Regards
clc
clear all
format compact
nrows = 3
A = ones(nrows)
E_A = sum(sum(A))
n = numel(A);
for k=1:n
A(k) = -1
E_B = sum(sum(A))
end

采纳的回答

James Tursa
James Tursa 2016-5-24
编辑:James Tursa 2016-5-24
Make this change:
:
p = randperm(n); % <-- Add this line just before for-loop
for k=1:n
A(p(k)) = -1; % <-- change the index from k to p(k)
:

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by