[MATLAB]使用协方差矩阵创建随机高斯变量



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

我相信您可能正在创建错误的数据,尝试以这种方式创建它:

% 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。

相关内容

  • 没有找到相关文章

最新更新