2

私はこのようなマトリックスを持っています:

1 2 4
4 5 6
1 2 4
7 9 6
1 2 4

同じ行を削除したい。私の新しいマトリックスは

4 5 6
7 9 6

これどうやってするの?

4

4 に答える 4

5

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, :);
于 2012-12-17T06:30:34.723 に答える
4

開始するのに適した場所は次のとおりです。

b = unique(A, 'rows')
于 2012-12-14T17:42:24.763 に答える
1

他のすべての行から 1 つの行を差し引いて試すことができます。いずれかの行にすべてゼロが含まれている場合、重複した要素が含まれていることがわかります。

于 2012-12-14T17:32:55.823 に答える
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)
于 2012-12-16T15:52:56.727 に答える