c*******h 发帖数: 1096 | 1 How to find rows of a matrix A that do not have duplicates?
Example:
A = [1 2;
3 4;
1 2;
1 2;
5 6];
The answer should return row indices 2 and 5. | l********a 发帖数: 1154 | 2 这个只能循环吧
a = [1 2;
3 4;
1 2;
1 2;
5 6];
b = [];
for i=1:size(a,1)
if 1==i
restMat = a(2:end,:);
else
restMat = [a(1:i-1,:);a(i+1:end,:)];
end
if ~ismember(a(i,:),restMat,'rows')
b(end+1) = i;
end
end
b | c*******h 发帖数: 1096 | 3 后来想到一个办法,把矩阵按行sort一下,然后用diff算前后两行的差,
把那些跟上一行以及下一行的差都不为零的行找出来就行了
【在 l********a 的大作中提到】 : 这个只能循环吧 : a = [1 2; : 3 4; : 1 2; : 1 2; : 5 6]; : b = []; : for i=1:size(a,1) : if 1==i : restMat = a(2:end,:);
| a***y 发帖数: 852 | 4 第一列乘一个随机数+第二列乘另个随机数,然后用unique判断 | t***s 发帖数: 4666 | 5 [B, I, J] = unique(A, 'rows');
IC = setdiff((1:size(A,1))', I);
[C, IB, IA] = intersect(B, A(IC,:), 'rows');
ID = setdiff((1:size(B,1))', IB);
D = B(ID,:);
【在 l********a 的大作中提到】 : 这个只能循环吧 : a = [1 2; : 3 4; : 1 2; : 1 2; : 5 6]; : b = []; : for i=1:size(a,1) : if 1==i : restMat = a(2:end,:);
| R*******n 发帖数: 428 | 6 提示:用 SORTROWS,两三行就可以解决。
【在 c*******h 的大作中提到】 : How to find rows of a matrix A that do not have duplicates? : Example: : A = [1 2; : 3 4; : 1 2; : 1 2; : 5 6]; : The answer should return row indices 2 and 5.
|
|