finding a sum of a vector without using the sum(x) function

3 visualizaciones (últimos 30 días)
I can make my program give the correct answer using the sum(x) function, but i can't use the sum(x) function. is there a way to use either a for or while loop to accomplish the same thing. my present code is:
clc;
clear all;
close all;
w = [1,1.2,.8,1];
x = [75, 80, 65, 78];
wa = 75;
for i = 1:1:length(x);
wa(i) = x(i)*w(i);
end
sum(wa(1:i)./i)
this yeilds the 75.25 answer that i should get. is there some simple that will fix the sum(wa(1:i)./i) I know that i can use the finite fix of wa(1)+wa(2)+...+wa(i), but i need it to work for any number of indexis of wa. as sum(wa(1:i)) does.

Respuesta aceptada

Sean de Wolski
Sean de Wolski el 12 de Sept. de 2012
Editada: Sean de Wolski el 12 de Sept. de 2012
Okay code golf:
w*x'/numel(x)

Más respuestas (1)

Matt Fig
Matt Fig el 12 de Sept. de 2012
If you don't need all of the wa, you should just do a running sum.
w = [1,1.2,.8,1];
x = [75, 80, 65, 78];
wa = 0;
for ii = 1:1:length(x);
wa = wa + x(ii)*w(ii);
end
wa/ii

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by