Find average of an array for values > 0

3 views (last 30 days)
Cameron Bowyer
Cameron Bowyer on 12 Sep 2021
Commented: stozaki on 12 Sep 2021
find average of array only for values > 0 and print using for loop and for where there is data (ie more than 0 values in the data)
i) sum of values
IF DATA > 0****** --> this is my main issue im stuck with
for i = 1:length(data)
sum = sum + data(i)
end
fprintf("%.2f\n", sum)
ii) average
if length(data) > 0
平均= sum/ length(data)
end
fprintf("%.3f\n", average)

Answers (1)

stozaki
stozaki on 12 Sep 2021
Hi,
What about the following processing?
data = [1 2 10 -38 -7 2 8 10 -5 1 0 -5 37];% example data
idx = find(data > 0);% Index of values greater than 0
result = mean(data(idx));% average
2 Comments
stozaki
stozaki on 12 Sep 2021
If you use for and if statements, you can do the following:
data = [1 2 10 -38 -7 2 8 10 -5 1 0 -5 37];% example data
temp = 0;% initialize temp
count = 0;% initialize count
forN = 1:length(data)
ifdata(N) > 0
temp = data(N) + temp;
count = count + 1;
else
% nop
end
end
平均= temp/count
平均= 8.8750

Sign in to comment.

下载188bet金宝搏


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by