这是怎么用的简单 -
A(~any(tril(squeeze(all(bsxfun(@eq,A,permute(fliplr(A),[3 2 1])),2))),2),:)
Playing code-golf https://en.wikipedia.org/wiki/Code_golf?好吧,我们开始吧——
A(~any(tril(pdist2(A,fliplr(A))==0),2),:)
如果仅处理两列矩阵,这里是simpler的版本bsxfun
-
M = bsxfun(@eq,A(:,1).',A(:,2)); %//'
out = A(~any(tril(M & M.'),2),:)
样本运行 -
A =
1 2
3 6
7 1
6 5
6 3
2 1
3 4
>> A(~any(tril(squeeze(all(bsxfun(@eq,A,permute(fliplr(A),[3 2 1])),2))),2),:)
ans =
1 2
3 6
7 1
6 5
3 4
>> A(~any(tril(pdist2(A,fliplr(A))==0),2),:)
ans =
1 2
3 6
7 1
6 5
3 4