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);
我有两个大小相同的列向量 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);