2017-02-05 30 views
-1

私は200のエントリを持つ4次元データセットを持っています。私はこのデータセット内でランダムな値を生成します。次のようにMATLABは私にエラーを与え、MATLABで多次元乱数を作成

mu = median(Input,2)'; % find the median of Input as MU 
sigma = [2 1; 1 4];  % SIGMA 
Data = mvnrnd(mu,sigma,10)'; % Generate random number with "mvnrnd" function 

:しかし

SIGMA must be a square matrix with size equal to the number of columns in MU, or a row vector with length equal to the number of columns in MU. 

私は、 "mvnrnd" 機能は、2Dよりも多くのデータを生成することができないと思い、私は変数の下に宣言しました。

アドバイスをお願いします。

+0

'データ(1、:) = mvnrnd(mu(1、:)、sigma、10)'; 'それで – Leos313

答えて

1

エラーがmuが行ベクトルではなく、あなたが行の中央値を取るので、それはだ、単にそれを転置そのOUに伝えます:ここで

mu = median(Input,2).'; 

は半正定値MATRICEを作成するための一つの方法であります:

sigma = [2 1 1 4]; 
01:

temp = rand(numel(mu)); 
sigma = temp.'*temp; 
Data = mvnrnd(mu,sigma ,100); 

あるいは、単に行ベクトルとしてsigmaを定義することができ

どのようにあなたのsigmaを選択するのか分かりませんが、上記の例では、2次元以上の多変量正規分布をmvnrndで作成することができます。

+0

のために私はそれをしましたが、エラーは次のように変更されました:SIGMAは、MUの列数に等しいサイズの正方行列、またはMUの列数に等しい長さの行ベクトルでなければなりません。 – BlueBit

+0

とあなたの 'mu'のサイズは何ですか? – EBH

+0

1 * 4、データの機能のサイズ – BlueBit

関連する問題