溫馨提示×

matlab中用unique函數(shù)去除矩陣重復(fù)的行,且不改變矩陣順序

小億
238
2023-12-19 09:09:51
欄目: 編程語言

在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ù)。

0