2017-02-18 58 views
1

在MATLAB中,說我對橢圓的參數:估計橢圓具有多變量高斯

  • (X,Y)中心
  • 短軸半徑
  • 長軸半徑
  • 旋轉角度

現在,我想生成位於該橢圓內的隨機點,從2D高斯近似。

我嘗試迄今爲止是這樣的:

num_samps = 100; 
data = [randn(num_samps, 1)+x_center randn(num_samps, 1)+y_center]; 

這給了我,擁有約在中心爲中心的數據簇,但是如果我畫橢圓在上面的一些觀點可能仍是外面。

如何執行軸規則和旋轉?

謝謝。

回答

0

我的假設

x_center = H

y_center = K

短軸半徑= B

長軸RADUIS =一個

旋轉角=阿爾法

h=0; 
k=0; 
b=5; 
a=10; 
alpha=30; 
num_samps = 100; 
data = [randn(num_samps, 1)+h randn(num_samps, 1)+k]; 
chk=(((((data(:,1)-h).*cos(alpha)+(data(:,2)-k).*sin(alpha))./a).^2) +... 
    (((data(:,1)-h).*sin(alpha)+(data(:,2)-k).*cos(alpha))./b).^2)<=1; 
idx=find(chk==0); 
if ~isempty(idx) 
    data(idx,:)=data(idx,:)-.5*ones(length(idx),2); 
end 
+0

只是選擇一些隨機值,然後檢查是否在橢圓方程橢圓中 –

+0

http://math.stackexchange.com/questions/426150/what-is-the-general-equation-of-the-ellipse-that-is - 不是,在最出發地和旋轉 –