📄 eigen.m
字号:
% EIGEN: Returns the sorted eigenvectors and eigenvalues of a square
% matrix A.
%
% Usage: [evects,evals] = eigen(A)
%
% A = input matrix.
% ------------------------------------------------------
% evects = matrix of eigenvectors (columns).
% evals = vector of eigenvalues in descending sequence.
%
% RE Strauss, 1/17/96
% 10/6/99 - allow for negative eigenvalues.
% 1/28/01 - convert complex values to real.
function [evects,evals] = eigen(A)
[evects,D] = eig(A); % Eigenanalysis
D = diag(D); % Extract diagonal of eigenvalue matrix
if (~isreal(D)) % Convert complex values to real
for i = 1:length(D)
if (~isreal(D(i)))
D(i) = abs(D(i));
end;
end;
end;
if (~isreal(evects))
[r,c] = size(evects);
for i = 1:r
for j = 1:c
if (~isreal(evects(i,j)))
evects(i,j) = abs(evects(i,j));
end;
end;
end;
end;
[evals,k] = sort(-D); % Sort by descending eigenvalues
evals = -evals;
evects = evects(:,k);
for j = 1:size(evects,2) % Reverse negative-direction eigenvectors
if (sum(evects(:,j))<0)
evects(:,j) = -evects(:,j);
end;
end;
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -