介绍MATLAB中的unique和uniquetol函数,它们可以根据有重复元素的列表构造集合。
工具/原料
MATLAB 2016a
unique函数用法
1、对于列表A,使用unique(A)返回由A中的不重复元素构成的列表,相当于列表转集合。
2、函数unique可以有三个返回值。第一个是返回的集合列表;第二个是返回集合列表中每一项在原有列表中的位置;第三个是原有列表中的每一项在返回集合列表中的位置。如图。
3、对于table表格,unique函数会将每一行看作整体,返回不含有重复项的表格。
4、unique可以带有参数'rows',这样在处理矩阵时,会将矩阵的每一行看作整体。
5、unique还可以带有参数'stab盟敢势袂le'或者'sorted',表示求出的集合列表是否排序。'stable'表示按照原有相对顺序,'sorted'表示对得到的集合排序。
6、unique把NaN看作互不相同的元素,这一点和很多其它集合操作函数一样。
uniquetol函数用法
1、uniquetol可以合并大小相差小于某特定撕良滤儆值的数据。uniquetol(A, tol)会按照abs(u-v) <= tol*max(abs(A(:)))来判断A中的元素u和v算不罪拈藉麝算“同一个”元素。如图,unique(A, 0.01)将会合并1.999和2.000
2、uniquetol和unique类似,可以有三个返回值,每个返回值的功能也是类似的。
3、uniquetol参数较多,与unique不同,没有单个的'rows'参数。需要配合使用'ByRows',true来达到unique中'rows'的效果,即将每一行视为整体。
4、uniquetol还有参数'OutputAllIndices',true使用此参数,如图,ia列表将是一个元胞数组,其中一个元胞是一个重复元素的所有下标。
5、uniquetol还支持参数 'DataScale',[列表]/单个数值如果是列表,将表示每一列的DS值,如果是单个数值,漉胜衲仰表示共同的DS值。如图,第一个Inf表示第一列元素无视大小差距;第二个100表示第二列的DS值为100...