我在MATLAB中有这个单元格数组:
y = { 'd' 'f' 'a' 'g' 'g' 'a' 'w' 'h'}
Run Code Online (Sandbox Code Playgroud)
我unique(y)用来摆脱重复,但它按字母顺序重新排列字符串:
>> unique(y)
ans =
'a' 'd' 'f' 'g' 'h' 'w'
Run Code Online (Sandbox Code Playgroud)
我想删除重复项但保持相同的顺序.我知道我可以编写一个函数来做这个但是想知道是否有更简单的方法unique用于删除重复项,同时保持相同的顺序只删除重复项.
我希望它返回这个:
>> unique(y)
ans =
'd' 'f' 'a' 'g' 'w' 'h'
Run Code Online (Sandbox Code Playgroud) 在8x8矩阵上使用此方法:
>> [junk,index] = unique(data,'first'); %# Capture the index, ignore junk
>> data(sort(index)) %# Index data with the sorted index
Run Code Online (Sandbox Code Playgroud)
以64x1格式输出格式(如果未找到重复)或如果找到重复,则输出nx1.
我的问题是如何在没有排序的情况下保留矩阵格式?
我需要它来检查重复的唯一(行)而不是唯一的单元格.并删除重复的行但保留格式(不要排列/排序).
我有一个数组a如下:
a = [ 1 2; 3 4; 1 2 ];
Run Code Online (Sandbox Code Playgroud)
我想删除多次出现的所有行a并获取c:
c = [ 3 4 ];
Run Code Online (Sandbox Code Playgroud)
请注意,这与保留唯一行的操作不同,因为我不希望出现具有重复行的行.我怎么能做到这一点?