Random uniform data points

2 views (last 30 days)
Simon De Gheselle
Simon De Gheselle on 19 Mar 2020
Answered: Moreno, M. on 20 Mar 2022
I am evaluating a positioning technique in a 3D environment (5m x 5m x 3m), is it possible to generate random unform distributed 3D coordiantes?
I am currently using the following code snippet:
a = -(width_dimension/2);
b = width_dimension/2;
rand_x = width_dimension.*rand(number_of_test_samples,1) + a;
a = -(length_dimension/2);
b = length_dimension/2;
rand_y = length_dimension.*rand(number_of_test_samples,1) + a;
a = 0;
b = height_dimension;
rand_z = height_dimension.*rand(number_of_test_samples,1) + a;
  1 Comment
Adam Danz
Adam Danz on 19 Mar 2020
Edited: Adam Danz on 19 Mar 2020
rand() returns random numbers from a uniform distribution bounded by [0,1].
Are you asking how to return a 3D array of random numbers?
d = rand(10,5,4); % returns 10x5x4 array of randos

Sign in to comment.

Answers (2)

Ameer Hamza
Ameer Hamza on 19 Mar 2020
Edited: Ameer Hamza on 19 Mar 2020
You can generate the coordinates with a single call to rand()
width_dimension = 5;
length_dimension = 5;
height_dimension = 3;
number_of_test_samples = 1000;
rand_values = rand(number_of_test_samples, 3) - 0.5;
rand_values = rand_values.*[width_dimension length_dimension height_dimension];
First colums is x-coordinate. Second and third columns are y and z-coordinates respectively.

Moreno, M.
Moreno, M. on 20 Mar 2022
https://uk.mathworks.com/matlabcentral/fileexchange/108374-uniformly-distributed-points

Categories

Find more on Creating and Concatenating Matrices 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!