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

Просто для удовольствия:

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

Честно говоря, это был мой любимый ответ. Я новичок MATLAB/Octave, и использование этого (или версии с использованием функций()) облегчило мою жизнь. Благодарю. – Chuck

Смежные вопросы