我有一个包含 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/