2017-01-23 14 views
1

1つの配列Aが1x64サイズでもう1つの配列Bが64x1806サイズです。 Aの最初の要素がBの1行目に追加され、64行目の要素が64行に追加されるような方法でAをBに追加したいとします。例:行ごとに1つの配列を別の配列に追加

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);... 

答えて

0

私が正しく理解していれば、あなたが各列のAを「繰り返し」、そしてそれはBと同じサイズを有している場合には、ちょうどそれにBを追加するために最初repmatを使用することもできます。

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

私は3つの行列 'A = [1を持っている場合。 2; 2; 3] B = [2 3 4; 5 6 7; 8 9 0] C = [3 4 5 6; 9 8 7 6; D = '[(1 + 2 + 3)(1 + 2 + 4)(1 + 2 + 5)(1 + 2 + 6)(1)]となり、 (1 + 3 + 3)(1 + 3 + 4)(1 + 3 + 5)(1 + 3 + 6)(1 + 4 + 3) 4 + 6)。 (2 + 5 + 8)(2 + 5 + 7)(2 + 5 + 6)(2 + 6 + 9)(2 + 6 + 8) (2 + 7 + 9)(2 + 7 + 8)(2 + 7 + 7)(2 + 7 + 6)となる。 (3 + 8 + 1)(3 + 9 + 5)(3 + 9 + 4)(3 + 8 + 4) (3 + 0 + 5)(3 + 0 + 4)(3 + 0 + 2)(3 + 9 + 1) –

5

使用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; 
関連する問題