Row wise将一个阵列添加到另一个阵列

问题描述:

我有一个1x64大小的阵列A和另一个阵列B的大小为64x1806。我想以A的第一个元素被添加到B的第一行,等到64的元素被添加到B的第64行这样的方式将A添加到B.我怎样才能在matlab中做到这一点?例如Row wise将一个阵列添加到另一个阵列

A= (4 5 6 7) 
B= (3 4 5; 
    4 5 6; 
    4 5 6; 
    3 4 5) 
c=(4+3) (4+4) (4+5); 
    (5+4) (5+5) (5+6); 
    (6+4) (6+5) (6+6);... 

如果我理解正确的话,你可能需要使用repmat第一个“重复”一种每列,且当其具有大小为B相同,只是增加B到它:

C = repmat(A', 1, size(B, 2)) + B 
+0

如果我有3点矩阵'A = [1; 2; 3) B = [2 3 4; 5 6 7; 8 9 0] C = [3 4 5 6; 9 8 7 6; (1 + 2 + 4)(1 + 2 + 5)(1 + 2 + 6)(1) (1 + 4 + 4)(1 + 4 + 5)(1 + 3 + 5)(1 + 3 + 4 + 6); (2 + 5 + 9)(2 + 5 + 8)(2 + 5 + 7)(2 + 6 + 8) (2 + 7 + 6)(2 + 7 + 9)(2 + 7 + 8)(2 + 7 + 7) (3 + 8 + 1)(3 + 9 + 5)(3 + 8 + 4)(3 + 8 + (3 + 9 + 1)(3 + 0 + 5)(3 + 0 + 4)(3 + 0 + 2)(3 + 0 + 1)]'那么这个方法怎么能被扩展呢? –

使用bsxfun到添加A转置和B单元素扩展:

A = [4 5 6 7] 
B = [3 4 5; 4 5 6; 4 5 6; 3 4 5]; 
C = bsxfun(@plus, A.', B); 

或者,从Matlab的R2016b,可以直接使用+,由于implicit singleton expansion

C = A.' + B;