How i Calculate the average number of even numbers in an array?

6 次查看(过去 30 天)
How i Calculate the average number of even numbers in an array?
If the array:
1.3700 1.2200 2.2000 2.2800
so the avarage:
1.9
because: (1.22+2.22+2.28)/3=1.9
How i do this?
  1 个评论
KSSV
KSSV 2018-12-4
Check your question properly....
(1.22+2.22+2.28)/3 = 1.90...
What do you mean by odd numbers here in the array?

请先登录,再进行评论。

采纳的回答

Bruno Luong
Bruno Luong 2018-12-4
编辑:Bruno Luong 2018-12-4
a = [1.3700 1.2200 2.2000 2.2800];
ac = round(a*100);
mean(ac(mod(ac,2)==0))/100
result
ans =
1.9000
  3 个评论
Bruno Luong
Bruno Luong 2018-12-4
Here is what might happen if one does't take care about rounding
mod(1.12*100,2)==0
ans =
logical
0

请先登录,再进行评论。

更多回答(2 个)

Kevin Chng
Kevin Chng 2018-12-4
My answer is
Check the index of Even number first
a = [1.3700 1.2200 2.2000 2.2800];
index = mod(single(a*100),2)==0;
Calculate the mean value of Even Number in the array
mean(a(index))
  5 个评论
Kevin Chng
Kevin Chng 2018-12-4
编辑:Kevin Chng 2018-12-5
Ya, numel is calculating the number of element. Sorry for my mistake.
However, tomer kapuri, any difficulties you are facing since you say something is not working.

请先登录,再进行评论。


Gareth
Gareth 2018-12-4
Hi Tomer,
I am not sure if I understand your question correctly.
In MATLAB to calculate the average you would use the function: mean
In your example:
a = [1.37 1.22 2.20 2.28];
yourAverage = mean(a)
Please note in your question you asked about odd number. You could do:
mean(a(2:end))
This is adding the last 3 elements of the array a, and dividing by 3 as you illustrated, but there is something not right with your Maths... as:
(1.22+2.22+2.28)/3 is not 4.2.
Hope this helps.

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by