我使用以下代码创建和绘制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值,这将确保您
始终选择k个点。第二种解决方案是随机选择值,每个值的平均选择概率为p ,这可能会导致随机选择的结果少至0或多达N
从N值中选取k :
您可以使用函数RANDPERM来创建整数1到N的随机排列,然后从排列列表中选择前k值并将其重新绘制为红色:
index = randperm(N); plot(x(index(1:k)),y(index(1:k)),'r*'); 以平均概率p选择值:
您可以使用RAND函数为N值中的每一个选择一个从0到1的随机值,然后选择一个随机值小于或等于平均概率p并将其重新绘制为红色:
index = (rand(N,1)