MATLAB error: You cannot specify 'stable' and 'sorted' with 'first' and 'last'

MATLAB error: You cannot specify 'stable' and 'sorted' with 'first' and 'last'

我有两个大小相同的列向量 X 和 Y,它们是通过以下 Matlab 代码导出的:

mask = imread('http://i.stack.imgur.com/8ecpw.png');
separation = bwulterode(mask,'euclidean',[0 0 0; 1 1 1; 0 0 0]).*mask; 
[X, Y] = find(separation);

我想删除 X 中的重复值及其在 Y 中的对应值,而不重新排列元素的顺序。所以我将 unique 函数与 'stable' 参数一起使用:

% 'stable' argument preserves ordering
[Xfixed, ind] = unique(X, 'stable');
% ind now holds the indices of the unique elements
Yfixed = Y(ind);

但是,我希望 unique 函数 return 每个唯一值最后一次出现的索引,并且当我将 'last' 参数与 unique 函数一起使用时:

[Xfixed, ind] = unique(X, 'stable', 'last');

我收到这个错误:

You cannot specify 'stable' and 'sorted' with 'first' and 'last'.

如何删除 X 和 Y 中第一次出现的重复元素?感谢任何帮助。

使用 last 选项并手动恢复顺序:

[~,ind]=unique(X,'last')
ind=sort(ind)
Yfixed = Y(ind);
Xfixed = X(ind);