在Matlab中,可以使用unique函數(shù)去除矩陣中重復(fù)的行,并且保持原始矩陣的順序不變。唯一需要注意的是,矩陣中的每一行必須是可哈希的,即不能包含非基本數(shù)據(jù)類型(如cell數(shù)組、結(jié)構(gòu)體等)。
以下是一個示例代碼:
% 示例矩陣
A = [1 2 3; 4 5 6; 1 2 3; 7 8 9; 4 5 6];
% 使用unique函數(shù)去除重復(fù)行,并保持順序
[~, idx] = unique(A, 'rows', 'stable');
result = A(idx, :);
在上述示例中,unique
函數(shù)的第二個輸出變量idx
保存了保持順序的索引值。然后,通過使用這些索引值來提取原始矩陣的非重復(fù)行。'stable'
選項用于保持原始矩陣的順序。
運行上述代碼后,result
將會保存去除重復(fù)行后的矩陣,且順序保持不變。結(jié)果為:
result =
1 2 3
4 5 6
7 8 9
注意,最后兩行已經(jīng)被去除了,因為它們與前面的行重復(fù)。