How to sum up multiple vectors, element by element, to recieve one final value?

84 views (last 30 days)
I am a beginner to MATLAB and I'm probably trying to run before I can walk here, however, I need to calculate this equation below and I have found no explanations online:
Where, WP and Op are vectors with 8760 iterations each.
I want to conduct this equation for each iteration of h (i.e. WP(1)*Op(1)/Op(1)) and summate each value to find a single value for the whole calculation (Ex).
I've been down the for loop route but not fully understanding how I can link it to my problem.
Any help would be amazing. Thanks!

Accepted Answer

Kevin Phung
Kevin Phung on 29 May 2019
Edited: Kevin Phung on 29 May 2019
W = [1 2 3 4 5];
O = [1 2 3 4 5];
%do the numerator first:
E = W.*O; %element wise product
%sum up the products, and divide by the sum of all elements in O:
E = sum(E)/sum(O); % E should now be a scalar -- your answer
let me know if this helps.

More Answers (1)

James Tursa
James Tursa on 29 May 2019
Edited: James Tursa on 29 May 2019
The numerator is just a simple dot product between two vectors, and the denominator is just a simple sum. Using the fact that a dot product between two vectors can be accomplished with the matrix multiply operator, you can just do a (row vector) * (column vector) operation on top and a sum on the bottom. E.g.,
If both are row vectors, then
E = WP * Op.' / sum(Op);
If both are column vectors, then
E = WP.' * Op / sum(Op);
Note that the .' operation is a non-conjugate transpose.




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!