我有两个MATRIX A和B,我想对行的方式结合起来,第一行中我没有重复的值和第二值,在A和B具有相同行值的列被添加在一起在新的矩阵。 即
a =
1 2 3
8 2 5
b =
1 2 5 7
2 4 6 1
期望outputc =
1 2 3 5 7
10 6 5 6 1
任何帮助,欢迎,欢迎。
我有两个MATRIX A和B,我想对行的方式结合起来,第一行中我没有重复的值和第二值,在A和B具有相同行值的列被添加在一起在新的矩阵。 即
a =
1 2 3
8 2 5
b =
1 2 5 7
2 4 6 1
期望outputc =
1 2 3 5 7
10 6 5 6 1
任何帮助,欢迎,欢迎。
要添加对应的同第一行的值第二排值。 这是一个典型的利用unique
和accumarray
:
[ii, ~, kk] = unique([a(1,:) b(1,:)]);
result = [ ii; accumarray(kk(:), [a(2,:) b(2,:)].').'];
如果你需要的列任意数量的(基于第一排值)来积累列,您可以用sparse
如下:
[ii, ~, kk] = unique([a(1,:) b(1,:)]);
r = repmat((1:size(a,1)-1).', 1, numel(kk));
c = repmat(kk.', size(a,1)-1, 1);
result = [ii; full(sparse(r,c,[a(2:end,:) b(2:end,:)]))];