how to sum a vector without sum function

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.

回答 (5 件)

KL
KL 2018 年 9 月 3 日
編集済み: KL 2020 年 11 月 4 日

1 投票

Your 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)
Dennis
Dennis 2018 年 9 月 3 日

1 投票

If the only requirement is to not use sum, i'd like to suggest to use cumsum instead!
A=cumsum(StrengthVector);
x=A(end);
As an alternative you could use a loop.
Matt J
Matt J 2018 年 9 月 3 日
編集済み: Matt J 2018 年 9 月 3 日

0 投票

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
Matt J
Matt J 2018 年 9 月 3 日

0 投票

x = log( prod(exp(StrengthVector)) );
Ameer Hamza
Ameer Hamza 2020 年 11 月 4 日

0 投票

x = 1:10;
s = x*ones(size(x)).'

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

質問済み:

2018 年 9 月 3 日

回答済み:

2020 年 11 月 4 日

Community Treasure Hunt

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

Start Hunting!

Translated by