dsort.m
来自「数字通信第四版原书的例程」· M 代码 · 共 38 行
M
38 行
function [s,ndx]=dsort(p)
%DSORT Sort complex discrete eigenvalues in descending order.
%
% S=DSORT(P) sorts the complex eigenvalues in the vector P in
% descending order by magnitude. The unstable eigenvalues will
% appear first.
%
% [S,NDX] = DSORT(P) also returns the vector NDX containing the
% indexes used in the sort.
%
% See also: ESORT and SORT.
% Clay M. Thompson 7-23-90
% Copyright (c) 1986-93 by the Mathworks, Inc.
error(nargchk(1,1,nargin));
[m,n] = size(p);
if m==1, p=p.'; [m,n] = size(p); end
[s,ndx] = sort( -abs(p) );
for i=1:n, s(:,i) = p(ndx(:,i),i); end
% Work around sort bug -- Remove when new sort routine is released.
for i=1:n,
k=1;
while k<length(s),
if (imag(s(k,i))~=0),
if (imag(s(k,i))<0),
s(k:k+1,i)=conj(s(k:k+1,i));
swap = ndx(k,i); ndx(k,i)=ndx(k+1,i); ndx(k+1,i)=swap;
end
k = k+2;
else
k = k+1;
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?