How to make sure that results are always positive?

25 views (last 30 days)
Hi, i have written a program which would give me a continuous outputs in the form of a histogram, using a set of for and while loops. I would like to know, how i can ensure that the results of the equations are always positive, ie, all the histogram columns lie in the positive axis? Here is the code i have written. All inputs are welcome and appreciated.
M = 1000.*ones(1,1000);
p = rand;
d = 1000;
n = randi(d);
m = randi(d);
for i = 1:1000
while(M(1,n)>0||M(1,m)>0)
n = randi(d);
m = randi(d);
if n==m % This loop ensures that the values of n and m remain distinct%
while n==m
n = randi(d);
m = randi(d);
if ne(n,m)==1
break;
end
end
end
M(1,n) = M(1,n) - (p.*( M(1,n)+M(1,m)))./2;
M(1,m) = M(1,m) + (p.*( M(1,n)+M(1,m)))./2;
if (M(1,n)<0&&M(1,m)<0)
break;
end
end
end

Answers (1)

Stef van Haaren
Stef van Haaren on 8 Oct 2019
Use abs()

Community Treasure Hunt

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

Start Hunting!