MATLAB Answers

Plotting random points in matlab

47 views (last 30 days)
Hello everyone, I have this figure which is shown below. I am getting a certain pattern of points every time i run my simulation. I mean, although the points are different every time but there is always some pattern in these points. Why is this, i don't know.

  6 Comments

Show 3 older comments
Star Strider
Star Strider on 18 Jun 2014
The rand function returns uniformly-distributed pseudorandom numbers on the interval (0,1).
Aftab Ahmed Khan
Aftab Ahmed Khan on 18 Jun 2014
Then why i am not getting something like this. I am again using the rand function.
Star Strider
Star Strider on 18 Jun 2014
That is because xx and yy are scaled, so that the radius component is always on the interval (0,r) and the quadrant is defined by the sign of the sin and cos (respectively) of different random numbers, this time on the interval (0,2*pi), so those parts of the calculation are defined on the interval (-1,1).
The end result is that xx and yy are each independently defined on the same interval for both the radius and angle compoents, but are different because the values returned by rand are different. Here, it looks as though they will always end up on an angle that is some odd integer multiple of (pi/4) radians, with varying radii.
Those explain posxy(:,1:2). I don’t understand posxy(:3).

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 18 Jun 2014
Computer-generated random numbers aren’t really ‘random’ in the mathematical sense of ‘randomness’ because they depend on deterministic algorithms and finite word lengths to compute them. These also depend on where the random number generator starts (the ‘seed’ number). The term used to describe numbers generated by these algorithms is ‘pseudorandom’ for that reason.
MathWorks explains it better than I can, because they wrote the algorithms. See Random Numbers in MATLAB and Why Do Random Numbers Repeat After Startup? for details.

  2 Comments

Aftab Ahmed Khan
Aftab Ahmed Khan on 18 Jun 2014
Hi star,
I got this now for my starting question. There is no pattern in it now compare to my starting question. I achieved this by removing the sign function from below two lines of code. Can you explain to me what this function does over here. I understand what sign function does, but what does it do over here ?
xx = (r*rand) * sign(sin(2*pi*rand));
yy = (r*rand) * sign(cos(2*pi*rand));
Star Strider
Star Strider on 18 Jun 2014
Here, the sign function forces the angle the radii are plotted against to always be an odd integer multiple of (pi/4) radians (45°).
Removing the sign function allows the angle to be defined randomly on the interval (0,2*pi).

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!