Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как добавить вектор-строку в вектор-столбец, например умножение матриц

Автор вопроса: remoОтветов: 3

У меня есть вектор nx1 и вектор 1xn. Я хочу добавить их особым образом, например, умножение матриц эффективным способом (векторизованным):

Пример:

A=[1 2 3]'

B=[4 5 6]

A \odd_add B =
[1+4 1+5 1+6
 2+4 2+5 2+6
 3+4 3+5 3+6
]

С уважением

matlabvectorizationproductaddition

Ответы

Ответ 1 · рейтинг 2 · H.Muster

Вы можете использовать bsxfun:

A=[1 2 3]'

B=[4 5 6]

bsxfun(@plus, A, B)

Результат

ans =

     5     6     7
     6     7     8
     7     8     9

Ответ 2 · Hari Seldon

Вы можете использовать функцию repmat (реплицировать матрицы):

repmat(A,1,3)+repmat(B,3,1)

Ответ 3 · David

Из R2016b вы можете просто сделать:

A=[1 2 3]'

B=[4 5 6]

A+B

ans =

     5     6     7
     6     7     8
     7     8     9

Matlab молча расширит оба вектора и выполнит поэлементную сумму. Эта функция не обошлась без споров. Вы можете проверить детали здесь:

Matlab расширяет арифметику

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы