How to find mean of a vector including only a specific range of elements
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sandie Nhatien Vu
am 5 Aug. 2016
Bearbeitet: Sandie Nhatien Vu
am 6 Aug. 2016
I am new with matlab, in advance sorry for my question. How can I find the mean of a vector that only takes elements between 15 and 25.
Ex.
I have a vector: v = [20 8 15 19 7 31]
What i want as output for this vector is (20+15+19)/3 = 18.
I know that the equation to use is:
sum(v)/length(v) = mean(v)
but i only want to include elements from 15:25 in any(!) vector.
My question: How can l write a program that computes and returns the mean, taking only the valid measurement (15-25)? This is regarding both vectorization and/loops
So far i have this code:
function averageRate = fermentationRate(vector)
averageRate = 0;
for k = 1:length(vector)
if (vector(k) < 25 && vector(k) > 15)
averageRate = (averageRate + vector(k));
end
end
That only tells the sum of the vector, i miss the dividing by length(vector). How can l add this?
0 Kommentare
Akzeptierte Antwort
James Tursa
am 6 Aug. 2016
Bearbeitet: James Tursa
am 6 Aug. 2016
vector = whatever;
min_value = whatever; % 15 in your example
max_value = whatever; % 25 in your example
x = vector >= min_value & vector <= max_value; % or > and < instead of >= and <=
result = mean(vector(x));
3 Kommentare
Stephen23
am 6 Aug. 2016
function out = fermentationRate(vec,lwr,upr)
out = mean(vec(lwr<vec & vec<upr));
end
and calling it:
>> fermentationRate([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0], 15, 25)
ans =
19.6
Weitere Antworten (1)
Star Strider
am 6 Aug. 2016
This works:
v = [20 8 15 19 7 31]; % Vector
UL = 25; % Upper Limit
LL = 15; % Lower Limit
v_mean = sum(v((v >= LL) & (v <= UL))) ./ sum(((v >= LL) & (v <= UL))) % Mean Of ‘v’ Given Constraints
vm =
18
It is necessary to use ‘>=’ and ‘<=’ to get the result you want.
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!