1
我想繪製一些隨機數圈,由3和25 Matlab的:求x點有相同的距離
所以之間
距離分開,如果每個圓的半徑是5,其中心之間的距離必須在13和35之間 這裏是我當前的代碼,但不工作:ok=false;
while 1
x = 100 * rand(100,1);
y = 100 * rand(100,1);
A = pdist2([x,y],[x,y]);
test1 = (A > 3 + size*num_clusters);
test2 = A < 30 + size*num_clusters;
test3 = test1.*test2;
num_clusters = 3;
for i=1:length(x)
sum(test3(i,:))
if sum(test3(i,:)) > num_clusters
logic = test3(i,:);
logic = find(logic);
logic = logic';
x = x(logic);
y = y(logic);
ok=true;
break
end
if ok
break
end
end
if ok
break
end
end
X(1:num_clusters,1) = x(1:num_clusters);
X(1:num_clusters,2) = y(1:num_clusters);
如果每個圓的半徑是5,你應該讓它們分開5(半徑圓左)+5(半徑圓右)+3(最小距離)= 13,而不是8。 –
是的,它是可靠的! – gpbdr13
指定爲什麼「它不起作用」。有明顯的編程錯誤(沒有參數的大小,創建之前調用的num_cluster等)。你是否複製粘貼這段代碼,你需要它的工作,或者代碼運行,但是算法中存在概念上的問題? –