2012-06-16 96 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