Как бы я случайно выбрал одну точку из N точек в MATLAB? - PullRequest
2 голосов
/ 29 ноября 2009

Я использую этот код для создания и построения N точек:

N = input('No. of Nodes:');
data = rand(N,2); % Randomly generated n no. of nodes
x = data(:,1);
y = data(:,2);

plot(x,y,'*')
hold on

Как бы я случайно выбрал одну из этих точек?

Ответы [ 3 ]

9 голосов
/ 29 ноября 2009

Вы можете использовать функцию RANDI для генерации случайного целого числа в заданном диапазоне:

index = randi(N);             %# Generate a random integer in the range 1 to N
plot(x(index),y(index),'o');  %# Plot the point

РЕДАКТИРОВАТЬ: Как указано Михаил , функция RANDI доступна только с версии 7.7 (R2008b). Для более ранних версий должна работать следующая альтернатива:

index = ceil(rand*N);
2 голосов
/ 29 ноября 2009
randnum=ceil(rand(1)*N)  %Sample a random integer in the range 0 to N
your_node = [x(randnum),y(randnum)] %Here is the sampled node from your data set

Edit: changed floor to ceil. 
0 голосов
/ 30 ноября 2009

Просто возьми первый. Будучи продуктом функции rand (), она должна быть достаточно случайной для любого: -)

plot(x(1),y(1),'o');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...