我有一個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