0

Matlab 新手。创建脚本以生成 2D 分布并确定其主成分。

我绘制主成分的方法是曲折的。必须有一种更优雅的方式来绘制主成分。它是什么?

我可以在我的线段末端加箭头吗?这是我的 .m 文件:

%Distrubtion variances
xx = 2;
yy = .6;
xy = .5;

%Create distribution data
A = mvnrnd([0 0] , [xx xy; xy yy], 100);

%Get principal components of data
coeff = pca(A);

%Plot distribution
h = plot(A(:,1),A(:,2),'b.');
hold on

%Do crazy stuff to plot principal components
temp=zeros(2,4);
temp(:, 2:2:end) = coeff;
scalefactor=10; %Make the lines longer
temp=scalefactor * temp
X=temp(1:2:end);
Y=temp(2:2:end);
plot(X, Y, 'r', 'LineWidth', 2);

%format plot
axis('square')
grid on;
xlabel('X Axis');
ylabel('Y Axis');
xlim([-10, 10]);
ylim([-10 10])

shg;
hold off;
4

1 回答 1

1

这可能更合理。该quiver函数绘制箭头。(见文档)。不过,您仍然需要自己调整箭头的大小。也许计算数据的范围而不是 10,并在比例因子和轴限制中使用它。

n = length(coeff);
coeff = 10 * coeff; % Make the lines longer
quiver(zeros(1,n), zeros(1, n), coeff(1,:), coeff(2,:), 'r', 'LineWidth', 2);

另外,我不知道您使用的是哪个版本的 MATLAB,但pcaprincomp我的版本中。

于 2013-02-23T02:29:39.370 回答