微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Matlab 中生成样本并估计协方差和特征值?

如何解决如何在 Matlab 中生成样本并估计协方差和特征值?

我的问题陈述:生成 10 个样本并估计协方差并确定其特征值。重复这个实验 50 次,计算 50 次试验中估计的两个特征值的均值和标准差。

我怎样才能在 Matlab 中实现这一目标?请帮忙!!!

解决方法

您尚未指定问题中样本的观察次数。因此,问题可以通过两种方式解决。为所需的观察次数生成 10 个样本 50 次并计算特征值、均值和标准差,或者生成 10 个样本 50 次并在每次迭代中将它们连接起来作为一个观察值。另一件事是我不明白你为什么要说两个特征值,因为 10 个样本的协方差矩阵是 10 x 10 并且显然有 10 个特征值。所以如果我理解正确,这里是第一个假设的代码

N = 50;
NumberOfSamples = 10;
NumberOfObservations = 100;
EigOfCovariance = zeros(NumberOfSamples,N);
MeanOfEigs = zeros(N,1);
SigmaOfEigs = zeros(N,1);
for i = 1:N
Samples = rand(NumberOfObservations,NumberOfSamples);
CovarianceOfSamples = cov(Samples);
EigOfCovariance(:,i) = eig(CovarianceOfSamples);
MeanOfEigs(i) = mean(EigOfCovariance(:,i));
SigmaOfEigs(i) = sqrt(var(EigOfCovariance(:,i)));
end

对于第二个假设,代码是

N = 50;
NumberOfSamples = 10;
Samples = rand(1,NumberOfSamples);
EigOfCovariance = zeros(NumberOfSamples,1);
for i = 2:N
Samples = cat(1,Samples,rand(1,NumberOfSamples));
CovarianceOfSamples = cov(Samples);
EigOfCovariance(:,i)));
end

其中 MeanOfEigs 是特征值均值的向量,SigmaOfEigs 是 50 次迭代的标准差向量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。