2017-10-05 396 views
-1

[(Workspace)] [1]我使用协方差矩阵创建随机变量。我想要生成300个随机二维特征数据(长度为&权重)的每个物种ω1(鲑鱼)和ω2(低音)。鲑鱼(ω1):平均值:65厘米,22千克协方差:[20 0.1;海鲈鱼(ω2):平均值:80厘米,31公斤协方差:[40 5; 5 50] 我创建样本后,我再次计算协方差矩阵只是为了检查。但是我发现它完全错误的原始协方差矩阵。有人可以帮我吗?附加是我的代码和不同的结果。请帮我:([matlab]使用协方差矩阵创建随机高斯变量

回答

0

我相信你可能会产生错误的数据,尝试建立这样说:也

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

,如果要检查数据确实已经正确的协方差,使用更大的N,例如5000.