2017-10-05 6 views
-1

[(Workspace)] [1] J'ai créé des variables aléatoires à l'aide de la matrice de covariance. Je veux générer 300 données de caractéristiques bidimensionnelles aléatoires (longueur & poids) de chaque espèce ω1 (saumon) et ω 2 (basse). Saumon (ω 1): moyenne: 65 cm, covariance de 22 kg: [20 0,1; 0,1 70] Bar (ω 2): moyenne: 80 cm, covariance de 31 kg: [40 5; 5 50] Après avoir créé des échantillons, j'ai encore calculé la matrice de covariance juste pour vérifier. Mais je l'ai trouvé totalement faux de la matrice de covariance originale. Quelqu'un peut-il m'aider s'il vous plaît? Ci-joint mon code et résultat différent. Aidez-moi s'il vous plaît :([matlab] Création de variables gaussiennes aléatoires à l'aide de la matrice de covariance

Répondre

0

Je crois que vous pourriez être en train de créer des données erronées, essayez de créer de cette façon:

% 0. INITILIZATION 
clc, clear all, close all 
rng default % For reproducibility 
N = 200; %Number of samples 

% 1. Data info 
mu1 = [65 22]'; 
mu2 = [80 31]'; 
mu = [mu1 mu2]; 
covar1 = [20 0.1;0.1 70]; 
covar2 = [40 5;5 50]; 

% Data generation 
Dset1 = mvnrnd(mu1,covar1,N)'; 
Dset2 = mvnrnd(mu2,covar2,N)'; 
figure('name', 'Data set X and X'''), hold on 

% Plot the data 
plot(Dset1(1,:),Dset1(2,:), 'b.',Dset2(1,:),Dset2(2,:), 'r.') 

Aussi, si vous voulez vérifier si les données ont en effet la covariance correcte, utilisez un plus grand, par exemple 5000.