2016-12-08 5 views
0

2次元で一様に分布する点をどのように生成できますか? このコードをテストしましたが、このコードではxyは均一ですが、(x,y)のペアは一様ではないため、このコードはテストしません。2Dで一様に分布する点

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

理由 '(x、y)は '一様ではありませんか? – Shai

+0

イメージをロードする方法は?私はこのコードを実行し、ポイントが一様ではないことを確認します –

+0

あなたは[imgur](http://imgur.com/upload)に画像をアップロードし、ここに画像へのリンクを掲載することができます。 – Shai

答えて

1

コードは2D空間を均一にサンプリングします。しかし、Matlabのunifrndメソッドもあり、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

ありがとう、しかし、これを実行すると、 'rng'のエラーが発生します –

+0

エラーが表示されるのは、あなたの乱数ジェネレータがレガシージェネレータであるためです。コードの先頭に 'rng( 'default')'を実行してみてください。 –

+0

フランツ・ハーンとサムベイ・ノリマキに感謝します。 –

関連する問題