easy beginner question : how to sum up
4 views (last 30 days)
Show older comments
Paul Hoffmann
on 12 Apr 2017
Answered: Paul Hoffmann
on 13 Apr 2017
I think this i quite easy for you guys - but ive not found an answer yet (perhaps because my english skills are limitated) I want to summ up two vektors like this V1 = [1 2 3] V2 = V1' (the transposed vektor) and I want to get the ?inner? sum
1 2 3
1
2
3
so that i get a matrix with this relsult ( so just row plus column )
2 3 4
3 4 5
4 5 6
would be really nice if you can help me. thx a lot
2 Comments
John D'Errico
on 12 Apr 2017
You called this an inner sum. But really, the correct term would be a generalized outer product.
https://en.wikipedia.org/wiki/Outer_product
James Tursa
on 12 Apr 2017
Edited: James Tursa
on 12 Apr 2017
OP is summing, not multiplying. I.e., an "outer sum" not an "outer product"
Accepted Answer
Star Strider
on 12 Apr 2017
Use the bsxfun function with the @plus function:
A = [1 2 3];
B = bsxfun(@plus, A(:), A)
B =
2 3 4
3 4 5
4 5 6
(In R2017a, this implicit expansion is done automatically. I still prefer bsxfun because it will throw an error if I do something wrong.)
2 Comments
Star Strider
on 12 Apr 2017
I’ve not tried implicit expansion without bsxfun. I’m in no rush to do so.
More Answers (2)
Guillaume
on 12 Apr 2017
If you're using R2016b or later, simply
V1 + V1.'
In earlier versions
bsxfun(@plus, V1, V1.')
0 Comments
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!