我有一个n×m的矩形矩阵(n!= m)。在MATLAB中查找是否有任何重复的行是最好的方法?找到重复索引的最佳方法是什么?通过矩阵的行如何判断一个矩形矩阵在MATLAB中是否有重复行?
回答
使用唯一的()来找到不同的行值。如果最终行数更少,则会有重复。它也会给你每个不同值的一个位置的索引。所有其他行索引都是您的重复项。
x = [
1 1
2 2
3 3
4 4
2 2
3 3
3 3
];
[u,I,J] = unique(x, 'rows', 'first')
hasDuplicates = size(u,1) < size(x,1)
ixDupRows = setdiff(1:size(x,1), I)
dupRowValues = x(ixDupRows,:)
>> mat = [1 2 3; 4 5 6; 7 8 9; 7 8 9; 1 2 3]; %# Sample matrix
>> [newmat,index] = unique(mat,'rows','first'); %# Finds indices of unique rows
>> repeatedIndex = setdiff(1:size(mat,1),index) %# Finds indices of repeats
repeatedIndex =
4 5
说你的矩阵是M:
[S,idx1] = sortrows(M);
idx2 = find(all(diff(S,1) == 0,2));
out = unique(idx1([idx2;idx2+1]));
出含有如有重复行的索引。
只有当您的重复行彼此相邻时,这才会有效。 – gnovice 2010-03-24 18:17:26
我的错误。错误的假设...... – upperBound 2010-03-24 18:27:03
好吧,从技术上来说,OP永远不会明确表示重复的行是否彼此邻接。尽管不像使用UNIQUE那么普遍,但是这种解决方案在相邻重复的特定情况下运行*显着*更快,所以+1。 – gnovice 2010-03-24 18:37:22
- 1. 使用Python,如何判断矩形和形状是否重叠?
- 2. 如何判断矩阵在python-numpy中是否单数?
- 3. 如何重复元素矩阵在MATLAB
- 4. 如何检查矩阵中是否有任何重复行?
- 5. 给定一个矩阵,我该如何判断一些值是否是邻居?
- 6. 在matlab中重塑一个矩阵
- 7. 如何判断单应性矩阵是否可以接受?
- 8. 如何判断矩阵的每一行中是否有1,以便每个1在不同的列中?
- 9. 在Matlab中将一个矩阵复制到另一个矩阵中
- 10. 在matlab中重塑矩阵
- 11. 检查矩阵是否是Matlab中的单位矩阵
- 12. Matlab:重塑矩阵来分隔矩阵
- 13. 如何测试一个矩形是否在另一个矩形中?
- 14. Matlab:复制矩阵的每一行
- 15. 如何在matlab中将矩阵块连接到单个矩阵?
- 16. 在矩阵中为匹配的ID重复一个值(MATLAB)
- 17. 在matlab中做一个增广矩阵,并减少行梯形
- 18. Matlab - 如何使用矩阵来过滤另一个矩阵?
- 19. 矩阵矩阵在Matlab中的数组?
- 20. 检查矩阵的每一行是否在另一个矩阵中[Python]
- 21. 如何重复3 d矩阵的各个维度在MATLAB
- 22. 在Matlab中用另一个矩阵生成随机矩阵
- 23. 如何将列矩阵转换为行矩阵在MATLAB
- 24. 矩阵在Matlab中
- 25. 复杂性:一个矩阵是另一个矩阵
- 26. Repmat按照另一个矩阵的矩阵行 - MATLAB
- 27. 如何在matlab中生成一个随机矩阵,每个值重复两次?
- 28. 在MATLAB矩阵
- 29. 如何在Matlab矩阵
- 30. 是否有可能在R中有矩阵矩阵?
+1:当,击败我49秒! – gnovice 2010-03-24 18:02:49
有谁知道Matlab用来计算这个算法吗? – Will 2012-04-07 01:45:18