我有一个这样的矩阵:
1 2 4
4 5 6
1 2 4
7 9 6
1 2 4
我想删除相同的行。我的新矩阵应该是
4 5 6
7 9 6
我怎样才能做到这一点?
我有一个这样的矩阵:
1 2 4
4 5 6
1 2 4
7 9 6
1 2 4
我想删除相同的行。我的新矩阵应该是
4 5 6
7 9 6
我怎样才能做到这一点?
基于unique( ,'rows')
@tayler 的更完整的解决方案是
[uA, ~, ui] = unique(A, 'rows'); % we have a single copy of each row.
% it is now left to determine which row is duplicate
n = hist( ui, 1:max(ui) );
sel = n == 1; % pick only indices that appear once
uA = uA(sel, :);
一个好的起点是:
b = unique(A, 'rows')
您可以尝试从所有其他行中减去一行,如果任何行包含全零,您就知道它包含重复的元素。
我认为这个脚本可能会做你想做的事:
B= A;
position = 1;
condition = true;
bSize = size(B,1);
while (position < bSize)
[~,~,ic] = unique(B,'rows');
changes = find(ic(position:end,:)== ic(position));
if (length(changes)>1)
B(changes+position-1,:)= [];
bSize = size(B,1);
else
position = position+1;
end
end
disp(B)