******************************************排序及元素统计
------------------------------统计向量中同一元素出现次数的代码
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)