私はこのようなマトリックスを持っています:
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')
他のすべての行から 1 つの行を差し引いて試すことができます。いずれかの行にすべてゼロが含まれている場合、重複した要素が含まれていることがわかります。
このスクリプトはあなたが望むことをするかもしれないと思います:
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)