Matlab中保持原来数值顺序的unique函数实现
2011-10-11 10:12
1091 查看
在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
运行结果
程序代码
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
运行结果
相关文章推荐
- matlab中用unique函数去除矩阵重复的行,且不改变矩阵顺序
- IIR滤波器设计(调用MATLAB IIR函数来实现)
- matlab GUI callback 函数实现
- 原来c++中没有random()函数,而是用rand函数实现产生随机数的功能
- 3. 用选择法实现对10个整数按从大到小的顺序排序输出(要求完成sort1函数)。
- IIR滤波器设计(调用MATLAB IIR函数来实现)
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 【转】Matlab中使用varargin来实现参数可变的函数
- IIR滤波器设计(调用MATLAB IIR函数来实现)
- 有关顺序表操作的函数实现
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 包含激活函数的多层神经元网络及matlab实现
- 离散时间信号常见函数的实现(matlab)
- [置顶] matlab2c使用c++实现matlab函数开发配置全解
- 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- Jquery源码解析---利用队列来实现函数的顺序执行
- Matlab中使用varargin来实现参数可变的函数
- 使用OpenCV中的filter2D函数精确实现matlab中的imfilter函数(已测)
- 将数组A中的0都移至数组末尾,将非0的移至开始(保持原来顺序)例子:1,2,0,2,3,0-->1,2,2,3,0
- matlab之disparity函数实现