Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中绘制特征向量_Matlab_Pca - Fatal编程技术网

在Matlab中绘制特征向量

在Matlab中绘制特征向量,matlab,pca,Matlab,Pca,我试图绘制一个二维数据集的特征向量,为此我试图使用Matlab中的quiver函数,以下是我迄今为止所做的工作: % generating 2D data clear ; s = [2 2] set = randn(200,1); x = normrnd(s(1).*set,1)+3 y = normrnd(s(1).*set,1)+2 x_0 = mean(x) y_0 = mean (y) c = linspace(1,100,length(x)); % color sc

我试图绘制一个二维数据集的特征向量,为此我试图使用Matlab中的
quiver
函数,以下是我迄今为止所做的工作:

    % generating  2D data 
clear ;
s  = [2 2] 
set = randn(200,1);
x = normrnd(s(1).*set,1)+3
y = normrnd(s(1).*set,1)+2
x_0 = mean(x)
y_0 = mean (y) 
c = linspace(1,100,length(x)); % color

scatter(x,y,100,c,'filled')
xlabel('1st Feature : x')
ylabel('2nd Feature : y')
title('2D dataset')
grid on
% gettign the covariance matrix 
covariance = cov([x,y])
% getting the eigenvalues and the  eigenwert 
[eigen_vector, eigen_values] = eig(covariance) 
eigen_value_1 = eigen_values(1,1) 
eigen_vector_1 =eigen_vector(:,1)
eigen_value_2 = eigen_values(2,2) 
eigen_vector_2 =eigen_vector(:,2)

% ploting the eigenvectors ! 
hold on 
quiver(x_0, y_0,eigen_vector_2*(eigen_value_2),eigen_vector_1*(eigen_value_1))
我的问题是最后一行,我得到以下错误:

    Error using quiver (line 44)
The size of Y must match the size of U or the number of rows of U.
我好像少了一个尺码,但我不知道在哪里!
提前感谢您提供的任何提示,如错误所述,
X
Y
参数必须分别具有相同大小的
U
V
参数。如果更改代码的最后一部分:

% ploting the eigenvectors ! 
hold on 
quiver(x_0, y_0,eigen_vector_2*(eigen_value_2),eigen_vector_1*(eigen_value_1))
详情如下:

x_0 = repmat(x_0,size(eigen_vector_2,1),1);
y_0 = repmat(x_0,size(eigen_vector_1,1),1);

% ploting the eigenvectors ! 
hold on;
quiver(x_0, y_0,eigen_vector_2*(eigen_value_2),eigen_vector_1*(eigen_value_1));
hold off;
你的脚本应该能正常工作