1

在 MATLAB 中有一个函数叫做cov. 如果我像这样X插入一个矩阵,那么将返回一个协方差方阵。covcov(X)cov

我的问题很简单:如何使用 MATLAB 将该矩阵cov(X)绘制到这样的图上2D。我可以在 Google 看到很多协方差矩阵图。但是他们是如何创造它们的呢?

在此处输入图像描述

4

1 回答 1

1

我最好的猜测是您正在尝试将主要成分添加到情节中。要做到这一点,你可以做这样的事情。

%% generate data points

S_tru = [2 1; 1 1];
N = 1000;
%% compute mean, covariance, principal components
X = mvnrnd([0,0],S_tru,N);
mu = mean(X);
S = cov(X);
[U,D] = eig(S);

%% specify base points/directions for arrows
base = [mu;mu];
vecs = sqrt(D)*U';
vecs = 2 * vecs;

%% plot
plot(X(:,1),X(:,2), 'r.')
axis equal
hold on
quiver(base(:,1),base(:,2),vecs(:,1),vecs(:,2),'blue','LineWidth',2)

结果图:

协方差图

于 2022-01-17T21:31:56.827 回答