Flipping the numbers 1 to -1

2 views (last 30 days)
Offroad Jeep
Offroad Jeep on 11 Feb 2016
Commented: Offroad Jeep on 17 May 2016
Hi, to all the members. Consider a matrix 'a' now we take a random number, if random number is >= to 0.5 change the first element from 1 to -1 then calculate mag,if not keep it as 1...... then for next step if random number is < 0.5 keep the matrix and calculate mag, now again take random number and check if now the random number is >=0.5 flip the second element calculate mag.......etc keep on going till the 25th element.
for example
a = 1 1 1 1 random = 0.2324 first element remains same mag = 4
now again take random number random = 0.5649 now a becomes a = -1 1 1 1 mag = 2 now again take random random = 0.6978 a = -1 -1 1 1 mag = 0
random = 0.2345 a = -1 -1 1 1 mag = 0
random = 0.7995 a = -1 -1 -1 1 mag = -1
random = 0.3453 a = -1 -1 -1 1 mag = -1
random = 0.9874 a = -1 -1 -1 -1 mag = -4
end the loop
show mag values and plot against B mag = 4 2 0 0 -1 -1 -4
B =linspace(2,0,numel(mag)) plot(B,mag)
thanks for guidance
  7 Comments

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 11 Feb 2016
Edited: Stephen23 on 12 Feb 2016
Try using a while loop:
a = ones(1,4)
k=1;
mag=[];
while k<=numel(a)
x = rand()>=0.5;
a(k)=a(k)-2*x;
mag(end+1)=sum(a);
k=k+x;
end
Produces:
a =
-1 -1 -1 -1
mag =
4 4 2 2 2 0 -2 -4
  7 Comments

Sign in to comment.

More Answers (1)

Jos (10584)
Jos (10584) on 11 Feb 2016
help numel
help for
help rand
help if
help sum
% for k=1:N
% if ...
% A(k) = -A(k)
% B(k) = sum ...
% end

Community Treasure Hunt

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

Start Hunting!