现在的位置: 首页 > 综合 > 正文

Matlab中保持原来数值顺序的unique函数实现

2013年07月13日 ⁄ 综合 ⁄ 共 416字 ⁄ 字号 评论关闭

      在matlab中使用unique函数获取某向量中不重复数值的集合时,默认会对这个集合中的元素排序。在某些应用场合当中,这种排序会带来某种不方便,这里实现了一个保持原来数值顺序的unique函数。

      程序代码

function uniVecUnsorted = unique_unsorted( vector )

uniValues = unique( vector );
mask = zeros( size( vector, 1 ), size( vector, 2 ) );

for i = 1 : length(uniValues);
    
    maskValue = ( vector == uniValues(i) );
    indFirst = find( vector == uniValues(i), 1, 'first' );
    maskValue( indFirst + 1 : end ) = 0;
    
    mask = mask | maskValue;
end

uniVecUnsorted = vector( mask );

end

      运行结果


抱歉!评论已关闭.