在matlab中找到与向量中相同顺序的向量的唯一值

Rez*_*a_M 4 matlab vector unique

我有一个向量A = [2,5,6,2,4,13,34,3,34].我想找到这个向量的唯一值,但不是按排序顺序!我在Matlab网站上搜索过,我发现了这个功能

[C, ia, ic] = unique(A,'rows','stable')
Run Code Online (Sandbox Code Playgroud)

但是这个功能在Matlab R2011a中无法识别!可能这个功能适用于高于2011的版本!任何人都知道如何找到A的唯一值与A中的顺序相同:A = [2,5,6,4,13,34,3]

Div*_*kar 5

如果您正在使用2D数组并希望获得与以下相同的功能,那么这是一个实现unique(A,'rows','stable')-

function [C, ia, ic] = unique_rows_stable(A)

[unqmat_notinorder,row_ind,labels] = unique(A,'rows','first');

[ia,ordered_ind] = sort(row_ind);

C = unqmat_notinorder(ordered_ind,:);

[~,ic] = ismember(labels,ordered_ind);
%// Or [ic,~] = find(bsxfun(@eq,ordered_ind,labels'))

return;
Run Code Online (Sandbox Code Playgroud)

  • 你肯定喜欢你的`bsxfun`.;-) (2认同)