我有一个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. 如何重复元素矩阵在MATLAB
- 2. 如何检查矩阵中是否有任何重复行?
- 3. 给定一个矩阵,我该如何判断一些值是否是邻居?
- 4. 在matlab中重塑一个矩阵
- 5. 检查矩阵是否是Matlab中的单位矩阵
- 6. Matlab:重塑矩阵来分隔矩阵
- 7. 如何测试一个矩形是否在另一个矩形中?
- 8. 矩阵矩阵在Matlab中的数组?
- 9. 检查矩阵的每一行是否在另一个矩阵中[Python]
- 10. 如何将列矩阵转换为行矩阵在MATLAB
- 11. 复杂性:一个矩阵是另一个矩阵
- 12. 在MATLAB矩阵
- 13. 如何在Matlab矩阵
- 14. 检查一个大矩阵中的重复条目matlab
- 15. 在MATLAB中求解一个矩阵?
- 16. matlab。根据另一个矩阵的值从一个矩阵复制值
- 17. 在MATLAB矩阵中查找最重复的行
- 18. 如何在MATLAB中将灰度矩阵转换为RGB矩阵?
- 19. 如何矢量化在MATLAB中指数为矩阵的矩阵?
- 20. 以矩阵形式获得矩阵行
- 21. 矩阵由matlab中的另一个矩阵索引?
- 22. 如何生成在MATLAB这个矩阵
- 23. 如何乘这个矩阵在MATLAB
- 24. Libgdx:如何检查当前矩形上方是否有矩形?
- 25. 如何检查矩阵是否不在数组中(Matlab)
- 26. 如何制作一个三角形渐变的Matlab矩阵?
- 27. 在Matlab中剔除矩形矩阵的部分
- 28. 添加一行到矩阵在MATLAB
- 29. imwrite在MATLAB中的双重矩阵
- 30. 矩阵在Matlab中的重组
+1:当,击败我49秒! – gnovice 2010-03-24 18:02:49
有谁知道Matlab用来计算这个算法吗? – Will 2012-04-07 01:45:18