% use : 在matlab中对矩阵的值按某一列排序。Made by jdg@hit
% parameters: matrix_sort(a,row,dim,mode)
%a :是 矩阵。 row :是第几行,或者 第几列,按这个进行排序。
%dim:dimension along ,指定row参数的意义,1 是代表列 ,2 是代表 行
% mode : 'ascend' 升序, 'descend' 降序。
% example: matrix_sort(a,1,1,'ascend')
% nargin 输入参数个数。nargout 输出参数个数。
% 输入参数用 varargin{1} ,varargin{2} 。输出参数用 varargout{1} = 或者 varargout(1) = { 结果 };
function [varargout]= matrix_sort(varargin)
if nargin < 2 | nargin > 4
varargout(1)={'miss parameters!'};
return;
elseif nargin==2
varargin{3}=1;
varargin{4}='ascend';
elseif nargin==3
varargin{4}='ascend';
end
a=varargin{1};
if varargin{3}==1
[temp,index] = sort(a(:,varargin{2}),varargin{3},varargin{4});
result(:,:) = a(index,:);
elseif varargin{3}==2
[temp,index] = sort(a(varargin{2},:),varargin{3},varargin{4});
result(:,:) = a(:,index);
else
varargout(1)={'The third parameter may be wrong !'};
return;
end
varargout{1} = result(:,:);