首页 > 其他 > 详细

matlab排序及元素统计

时间:2014-04-08 12:06:13      阅读:564      评论:0      收藏:0      [点我收藏+]


******************************************排序及元素统计

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

matlab排序及元素统计,布布扣,bubuko.com

matlab排序及元素统计

原文:http://www.cnblogs.com/lemonmelon/p/3651078.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!