⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eigen.m

📁 计量工具箱
💻 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 + -