[matlab]使用协方差矩阵创建随机高斯变量
[matlab]Creating Random Gaussian variables using covariance matrix
[(Workspace)][1]我使用协方差矩阵创建了随机变量。我想生成每个物种 ω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。
[(Workspace)][1]我使用协方差矩阵创建了随机变量。我想生成每个物种 ω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。