温馨提示×

matlab中用unique函数去除矩阵重复的行,且不改变矩阵顺序

小亿
119
2023-12-19 09:09:51
栏目: 编程语言

在Matlab中,可以使用unique函数去除矩阵中重复的行,并且保持原始矩阵的顺序不变。唯一需要注意的是,矩阵中的每一行必须是可哈希的,即不能包含非基本数据类型(如cell数组、结构体等)。

以下是一个示例代码:

% 示例矩阵
A = [1 2 3; 4 5 6; 1 2 3; 7 8 9; 4 5 6];
% 使用unique函数去除重复行,并保持顺序
[~, idx] = unique(A, 'rows', 'stable');
result = A(idx, :);

在上述示例中,unique函数的第二个输出变量idx保存了保持顺序的索引值。然后,通过使用这些索引值来提取原始矩阵的非重复行。'stable'选项用于保持原始矩阵的顺序。

运行上述代码后,result将会保存去除重复行后的矩阵,且顺序保持不变。结果为:

result =

     1     2     3
     4     5     6
     7     8     9

注意,最后两行已经被去除了,因为它们与前面的行重复。

0