で正しく固有ベクトルをプロット、ここで私はそのために書いてきたスクリプト:私は、2Dデータセットのcaculated固有ベクトルをプロットしようとしているMatlabの
を:clear ;
s = [2 2]
set = randn(200,1);
x = normrnd(s(1).*set,1)+3
x = zscore(x) % Standardize
y = normrnd(s(1).*set,1)+2
y= zscore(y)%Standardize
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
x_0 = repmat(x_0,size(eigen_vector_2,1),1);
y_0 = repmat(y_0,size(eigen_vector_1,1),1);
quiver(x_0, y_0,eigen_vector_2*(eigen_value_2),eigen_vector_1*(eigen_value_1),'-r','LineWidth',5)
、ここでは、私が取得していた結果であります
私は二重の数学をチェックしました、値が正しいですが、プロットは混乱です! 私は2つのベクトルのプロットで何が分かりませんか?ありがとうございます。 あなたのコードで
もう一度お世話になりましたが、なぜsqrtを使用しているのか分かりません。 – Engine