Random uniform data points

2 次查看(过去 30 天)
Simon De Gheselle
Simon De Gheselle 2020-3-19
回答: Moreno, M. 2022-3-20
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 个评论
Adam Danz
Adam Danz 2020-3-19
编辑:Adam Danz 2020-3-19
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

请先登录,再进行评论。

回答(2 个)

Ameer Hamza
Ameer Hamza 2020-3-19
编辑:Ameer Hamza 2020-3-19
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. 2022-3-20
https://uk.mathworks.com/matlabcentral/fileexchange/108374-uniformly-distributed-points

Community Treasure Hunt

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

Start Hunting!

Translated by