![]() |
如何在MATLAB中从N个点中随机选择k个点?
我使用以下代码创建和绘制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,'*'); 如何从N个点中选择k个点(概率为p=0.25 ),然后将这些k点涂成红色,其他点保留为* 。 回答: 您可以采用两种方法。第一种解决方案是从N值中随机选择k值,这将确保您[I]始终[/I]选择k个点。第二种解决方案是随机选择值,每个值的平均选择概率为p ,这可能会导致随机选择的结果少至0或多达N <ul> [B]从N值中选取k :[/B] 您可以使用函数[URL="http://www.mathworks.com/help/techdoc/ref/randperm.html"]RANDPERM[/URL]来创建整数1到N的随机排列,然后从排列列表中选择前k值并将其重新绘制为红色: index = randperm(N); plot(x(index(1:k)),y(index(1:k)),'r*'); [B]以平均概率p选择值:[/B] 您可以使用[URL="http://www.mathworks.com/help/techdoc/ref/rand.html"]RAND[/URL]函数为N值中的每一个选择一个从0到1的随机值,然后选择一个随机值小于或等于平均概率p并将其重新绘制为红色: index = (rand(N,1) |
所有时间均为北京时间。现在的时间是 02:34。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.