我需要在一列中删除两个矩阵的重叠行。
例如:
矩阵 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;
谢谢!基督教
或者,始终保持所选列中的最后一次出现:
x = [x1;x2];
columnIndex = 1; % column 1
[~, i] = unique(x(:, columnIndex), 'last');
xMerge = x(i, :);
适用于多个矩阵和不同列进行索引。
您可以使用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