2016-12-08 2 views
0

Comment générer des points uniformément répartis en deux dimensions? J'ai testé ce code, mais je ne le veux pas parce que dans ce code x et y sont uniformes, mais les paires de (x,y) ne sont pas uniformes.Points uniformément répartis en 2D

X=rand(2,N); 
x= X(1,:); 
y=X(2,:); 
figure;          
plot(x,y,'.');        
+1

pourquoi '(x, y)' ne sont pas uniformes? – Shai

+0

comment je peux charger une image? Je cours ce code et je vois les points ne sont pas uniformes –

+0

vous pouvez télécharger une image à [imgur] (http://imgur.com/upload) et poster un lien vers l'image ici. – Shai

Répondre

1

Votre code échantillonne uniformément l'espace 2D. Mais il y a aussi la méthode unifrnd dans Matlab, qui échantillonne l'espace n-D.

N = 5000; 
rng(320); 
X=rand(2,N); 
x=X(1,:); 
y=X(2,:); 
figure('Position',[125 125 1200 500]);          
subplot(1,2,1) 
plot(x,y,'.'); 

rng(320); 
X2 = unifrnd(0,1,2,N); 
x=X(1,:); 
y=X(2,:); 
subplot(1,2,2) 
plot(x,y,'.'); 

Comparison of methods

+0

merci, mais quand je cours cela, a une erreur pour 'rng' –

+0

Si une erreur apparaît est probablement parce que votre générateur de nombres aléatoires est le générateur hérité. Essayez d'exécuter 'rng ('default')' au début du code. –

+0

merci beaucoup Franz Hahn et Sembei Norimaki. –