Note that sum(s) / numel(s)
by definition is the same as mean(s)
.
The loop free approach:
testData = [3, 4, 2, 5, 4]
q = testData - mean(testData);
s = mean(q.^2);
s = 1.0400
The one-liner:
s = mean((testData-mean(testData)).^2)
s = 1.0400
And your initial approach:
(After bug fixing)
testData = [3, 4, 2, 5, 4]
s = 0;
sizeTestData = length(testData);
testDataMean = mean(testData);
for k = 1:sizeTestData
p = testData(k);
q = p - testDataMean;
r = q^2;
s = s + r;
end
s = s / numel(s);
s = 1.0400