Asked by nathan Short
on 3 Sep 2018

function Mean = mean_strength(StrengthVector)

N = numel(StrengthVector);

x = sum(StrengthVector);

for i = 1:N

Mean = (1/N)*(x);

end

I need to change my code so I don't use the in built Matlab sum function.

Answer by KL
on 3 Sep 2018

You're idea of using for loop is correct but you should use it to calculate the sum not the mean.

If there's a vector A = [1,2,3,4,5], how would you calculate the sum? By adding its elements with each other, right? It's pretty much the same here.

- create a resuting variable and initilize it to 0

result_sum = 0;

- use the for loop to index through A and add the current element to the above variable

result_sum = result_sum + A(i);

- once you are done with the for loop calculate mean by diving it with N (just like you've done but outside the loop)

Sign in to comment.

Answer by Matt J
on 3 Sep 2018

Edited by Matt J
on 3 Sep 2018

You can do all sorts of crazy things,

function Mean = mean_strength(StrengthVector)

N = numel(StrengthVector);

if N==1

Mean = StrengthVector;

else

Mean = StrengthVector(1)/N + (N-1)/N*mean_strength( StrengthVector(2:end) );

end

end

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.