2017-01-23 4 views
1

habe ich eine Array A von 1x64 Größe und ein weiteres Array von B 64x1806 Größe. Ich möchte A in B derart hinzuzufügen, dass erste Element von A bis 1. Reihe von B hinzugefügt wird, und so weiter bis zu 64 Element der 64. Reihe von B gegeben, wie kann ich dies tun in matlab.?for BeispielRow weise Zugabe von einem Array zu einem anderen

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

Antwort

0

Wenn ich das richtig verstanden, möchten Sie vielleicht repmat zuerst verwenden, um für jede Spalte A „wiederholen“, und wenn es die gleiche Größe wie B hat, fügen Sie einfach B, um es:

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

wenn ich 3 Matrizen 'A = [1; 2; 3] B = [2 3 4; 5 6 7; 8 9 0] C = [3 4 5 6; 9 8 7 6; 5 4 2 1] 'und ich möchte, dass sie auf diese Weise D hinzuzufügen =' [(1 + 2 + 3) (1 + 2 + 4) (1 + 2 + 5) (1 + 2 + 6) (1 + 3 + 3) (1 + 3 + 4) (1 + 3 + 5) (1 + 3 + 6) (1 + 4 + 3) (1 + 4 + 4) (1 + 4 + 5) (1+ 4 + 6); (2 + 5 + 9) (2 + 5 + 8) (2 + 5 + 7) (2 + 5 + 6) (2 + 6 + 9) (2 + 6 + 8) (2 + 6 + 7) (2 + 6 + 6) (2 + 7 + 9) (2 + 7 + 8) (2 + 7 + 7) (2 + 7 + 6); (3 + 8 + 5) (3 + 8 + 4) (3 + 8 + 2) (3 + 8 + 1) (3 + 9 + 5) (3 + 9 + 4) (3 + 9 + 2) (3 + 9 + 1) (3 + 0 + 5) (3 + 0 + 4) (3 + 0 + 2) (3 + 0 + 1)] 'Wie kann dann diese Methode erweitert werden? –

5

verwenden bsxfun zu hinzufügen A umgesetzt und B elementweise mit Singletons Expansion:

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

Oder von Matlab R2016b, können Sie + direkt bedienen, dank implicit singleton expansion:

C = A.' + B; 
Verwandte Themen