[matlab]使用协方差矩阵

时间:2017-10-05 11:39:24

标签: matlab covariance gaussian

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

1 个答案:

答案 0 :(得分: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。