2017-10-05 1 views
-1

[(Workspace)] [1] Ich habe Zufallsvariablen mithilfe der Kovarianzmatrix erstellt. Ich möchte 300 zufällige zweidimensionale Merkmalsdaten (Länge & Gewicht) jeder Spezies ω1 (Lachs) und ω2 (Bass) erzeugen. Lachs (ω 1): Mittelwert: 65 cm, 22 kg Kovarianz: [20 0,1; 0,1 70] Wolfsbarsch (ω 2): Mittelwert: 80 cm, 31 kg Kovarianz: [40 5; 5 50] Nachdem ich Samples erstellt hatte, berechnete ich die Covarianzmatrix erneut, um sie auszuprobieren. Aber ich fand es total falsch von der ursprünglichen Kovarianzmatrix. Kann mir bitte jemand helfen? Beigefügt ist mein Code und anderes Ergebnis. Bitte helft mir :([Matlab] Erstellen zufälliger Gaußscher Variablen mit der Kovarianzmatrix

Antwort

0

Ich glaube, Sie könnten die falschen Daten werden zu schaffen, versuchen Sie es auf diese Weise zu schaffen:

% 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.') 

Auch, wenn Sie in der Tat die richtige Kovarianz, wenn die Daten überprüfen möchten hat, verwenden Sie ein Größeres N, sagen wir zum Beispiel 5000.

Verwandte Themen