How to randomly divide an M by M region into n sub regions

3 views (last 30 days)
I what to randomly divide a sqaure region (20 by 20) into 3 portions (not necessary square in shape).
Then randomly deploy points in the 3 regions.
I tried the code below but not getting what i want. I need random divisions (different shapes e.g one portion can be a trapezoid and so on)
for i=1:1:m;
b(i)=(0.25 +(0.25).*rand).*m;
c(i)=(0.5 +(0.25).*rand).*m;
plot (n, '+r')
hold on
plot (b, 'ok')
hold on
plot (c, 'vg')
hold off
Please help
The above code gives divisions along horizontal lines
figure 1.
I need something like the above figure 1.

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 20 Apr 2019
Edited: Image Analyst on 20 Apr 2019
Try voronoi() if you want random points, or superpixels() if you have an image and want some sort of decision-based boundaries.


Find more on Voronoi Diagram in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!