arrays - 如何找到矩阵中的唯一行,每行中没有元素顺序?

标签 arrays matlab unique

我有一个包含 n 行和 4 列的数组。该行的四个条目中的每一个都是一个整数,即,

X = [
       111 112 432   2
         6   9 115 111
       112 432 111   2

    ]; 

每一行代表一个四面体的顶点。这些顶点没有方向性,因此在上述情况下,X(1,:) 和 X(3,:) 表示的四面体是等价的。

我希望从 X 中删除重复的四面体,但不太清楚如何将顺序独立性合并到我的代码中。

我尝试了 UNIQUE() 函数,但它返回一个 (nx1) 个唯一整数数组,即,

Y = UNIQUE(X);

Y = [
     2
     6
     9
     111
     112
     115
     432
    ]

有人对完成此任务的合理有效方法有任何建议吗?

谢谢, 小号:-)

最佳答案

首先,对矩阵的行进行排序以获得四面体的“规范”表示:

X = sort(X, 2);

然后,使用 unique 和可选的 'rows' 参数来查找唯一行:

Y = unique(X, 'rows');

关于arrays - 如何找到矩阵中的唯一行,每行中没有元素顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254800/

相关文章:

Javascript - 数组连接到另一个

python - 基于索引的python列表中的优雅切片

matlab - 如何在 MATLAB 中创建间距对数递减的向量?

unique - 如何防御多账户用户?

matlab phi 符号

php - 将 PHP 与 Octave 或 Matlab 链接起来

mysql - 在错误插入中保留顺序主键

java - 数组|使用数组除法查找重复整数?

python - 如何在数组中找到两个相似数字的索引?

Java:将整数从文件读入数组