2012-06-16 137 views
2

如何在Matlab中將矢量添加到矩陣中,方法是將矢量的i索引添加到i行的所有成員中?如何在matlab中將矢量添加到矩陣中?

例如:

A = [1 2 3; 
    4 5 6; 
    6 7 8] 
v = [1; 
    2; 
    3] 

所需的結果是:

[2 3 4; 
6 7 8; 
9 10 11] 

感謝。

+0

你的意思是dd一個矢量到矩陣的特定行? – mathematician1975

+0

您的意思是:1)添加一個nx1數組到一個nxm矩陣的末尾,放大矩陣2)將這樣一個數組插入矩陣的中間,放大矩陣3)覆蓋該數組,保持相同的矩陣大小4 )你是否可以預先分配一個零矩陣,從而3)無論如何(這將比增大矩陣快) –

回答

5

bsxfun另一種方法是使用repmat和重複列向量v多次A有列:

A = [1 2 3; 4 5 6; 6 7 8]; 
v = [1; 2; 3] 

A = A + repmat(v,1,3); 
7

您可以使用bsxfun

B=bsxfun(@plus,A,v); 
7

只是爲了好玩:

A + v(:,[1 1 1]); 
+1

老實說,這是我最喜歡的答案。我是一個MATLAB/Octave初學者,使用這個(或使用ones()的版本)讓我的生活變得更加簡單。謝謝。 – Chuck