1

2 つのマトリックスの重複する行を 1 つの列に関して削除する必要があります。

例えば:

マトリックス 1:

1, 5;
2, 23;
3, 51;
4, 21;
5, 661;

マトリックス 2:

4, 11;
5, 601;
6, 341;
7, 5;
etc.

次のようになります。

結果マトリックス:

1, 5;
2, 23;
3, 51;
4, 11;
5, 601;
6, 341;
7, 5;

ありがとう!キリスト教徒

4

2 に答える 2

3

別の方法として、選択した列の最後の出現を常に保持します。

x = [x1;x2];
columnIndex = 1; % column 1 
[~, i] = unique(x(:, columnIndex), 'last');
xMerge = x(i, :);

インデックスを作成する複数の行列と異なる列に適用されます。

于 2012-08-16T22:55:18.867 に答える
2

union追加のインデックス出力で使用できます。

x1 = [ ...
    1, 5; ...
    2, 23;...
    3, 51;...
    4, 21;...
    5, 661];

x2 = [ ...
    4, 11;...
    5, 601;...
    6, 341;...
    7, 5];

[~, ixs1, ixs2] = union(x1(:,1), x2(:,1));


xMerge = [...
    x1(ixs1,:); ...
    x2(ixs2,:)];

これにより、次の結果が得られます。

>> xMerge 
xMerge =
     1     5
     2    23
     3    51
     4    11
     5   601
     6   341
     7     5
于 2012-08-16T22:26:08.880 に答える