******************************************排序及元素统计
------------------------------统计向量中同一元素出现次数的代码
x=A(:);
x=sort(x);
d=diff([x;max(x)+1]);
%对x作足够多次的差分,由于x已经排序过,值相等的元素差分后为0,值不等的元素差分后为1
count =
diff(find([1;d]));
y
=[x(find(d)),count];
--------------------------------------sort函数
sort(A)
%若A为向量,直接排序,A为矩阵或多维数组,则默认对第1维排序
%sort函数可以将字符串元胞数组按ASCII码排序,区分大小写,此时不支持其他参数设置
%若对复数排序,则按其模的大小排序
sort(A,dim)
%对第几维排序的参数,dim=1--列内(1维)排序 dim=2--行内(2维)排序
!!!单独处理每行/列,不再保持行/列的数据对应关系
sort(A,mode) %排序方式控制,mode=‘ascend‘ or
‘descend‘,mode可以与dim同时使用
--------------------------------------diff函数,差分?
Y
= diff(X)
%若X为n*1维向量,Y=X(2:n)-X(1:n-1)
若X为m*n维向量,Y=X(2:m,:)-X(1:m-1,:),即默认对行差分
Y = diff(X,n)
%参数n是差分的阶数,如n=2,则Y = diff(X,2) = diff(diff(X))
Y = diff(X,n,dim)
%向量A在dim维的n阶差分
--------------------------------------sortrows函数
B
= sortrows(A) %对行排序
B =
sortrows(A,column)
%column是排序参照列,如sortrows(A,[3,-2]),即先按第三列升序排列,再将第三列等值的行按第二列降序排列
[B,index]
= sortrows(A,...)
%同时返回排序前的行号索引
--------------------------------------unique函数
C =
unique(A) %若A是矩阵,则默认将A转换为列向量处理
C = unique(A,‘rows‘)
%以行为处理单元,即返回不完全相同的行
[C,ia,ic] = unique(A) % C =
A(ia)--C中元素在A中的索引,默认为在A中最后出现的位置;A = C(ic)--A中元素在C中的索引
[C,ia,ic] =
unique(A,‘rows‘)
[C,ia,ic] = unique(A,occurrence) % occurrence
=‘last‘ or ‘first‘,即返回首次出现或最后一次出现的元素
[C,ia,ic] =
unique(A,‘rows‘,occurrence)
[C,ia,ic] = unique(A, setOrder) %
setOrder = ‘sorted‘ or
‘stable‘,默认为‘sorted‘,即unique之后元素被排序了,‘stable‘则按A中顺序返回
[C,ia,ic] =
unique(A,‘rows‘,setOrder)
原文:http://www.cnblogs.com/lemonmelon/p/3651078.html