我如何从MATLAB中的N个点中随机选取一个点?

gur*_*der 2 matlab

我使用此代码来创建和绘制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
Run Code Online (Sandbox Code Playgroud)

我如何随机选择其中一个点?

gno*_*ice 9

您可以使用函数RANDI在给定范围内生成随机整数:

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

编辑:正如Mikhail所指出的,RANDI功能仅在7.7版本(R2008b)之后才可用.对于早期版本,以下替代方案应该有效:

index = ceil(rand*N);
Run Code Online (Sandbox Code Playgroud)

  • 很好的解决方案,但如果我没记错的话,可用,只适用于最后几个Matlab版本.一般来说,MathWorks应该将它放在帮助中,从哪个版本的功能开始. (2认同)