Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29277 讨论

Calculate Median Value for Real number

uddin__md
初学者
4,040 次查看

I wrote a program for the calculate the media value of real numbers. Program calculate the median value, but the calculated median value does not similar to excel or spss calculated median value. The excel gave median value 27.21 for the input data, but the program gave 29.45 for same input data. I also tried using integer or other data set the program also gave different median value from others.

Please give a solution How can I solve this issues. Many thanks for your support. 

标签 (1)
0 项奖励
1 解答
andrew_4619
名誉分销商 III
3,991 次查看
   REAL, DIMENSION(0:100)			:: X
   INTEGER                          :: N
   INTEGER                          :: IOstatus
   INTEGER                          :: i
   OPEN(1,FILE ='DATA07.DAT', STATUS = 'OLD') 
   DO
      READ(1,*,IOSTAT=IOstatus) N, (X(i), i = 1, N)

I was noting the array X start at x(0) through to x(100) , that is 101 elements but in your loop you have i = 1, n that is i does not start at zero.  Was that what you intended? X(0) is not set.

在原帖中查看解决方案

0 项奖励
11 回复数
JohnNichols
重要分销商 III
4,029 次查看
IF (MOD(N,2) == 0) THEN           ! compute the median
         Median = (Temp(N/2) + Temp(N/2+1)) / 2.0
      ELSE
         Median = Temp(N/2+1)
      END IF

At a guess and I do not do median -- these are wrong -- you are probably missing a bra and a ket as we say in Pure Math - could be wrong 

0 项奖励
uddin__md
初学者
4,014 次查看

@JohnNichols  Previously I used this format, then I changed it. But Both format output was given similar errors. Many thanks and looking further solution 

0 项奖励
John_Campbell
新分销商 II
3,935 次查看

Shouldn't the median value be an element of the set of values, unlike the average ?

You could choose either possibility when the count is even.

0 项奖励
Arjen_Markus
名誉分销商 II
3,897 次查看

Not necessarily, the definition at Wikipedia, https://en.wikipedia.org/wiki/Median, includes the average of two numbers in the sequence, f you have an even amount of data.

0 项奖励
andrew_4619
名誉分销商 III
4,027 次查看

I didn't study the program much but I noted that your array is zero based but all your loops look at elements 1 to N rather than 0 to n-1 is that your problem?

 

 

0 项奖励
uddin__md
初学者
4,013 次查看

@andrew_4619  Your explanation may not clear. Many thanks for your reply. If you have more energy please give me a solution

0 项奖励
Steve_Lionel
名誉分销商 III
4,007 次查看

This looks to me like a class work assignment. If so, you should not be asking others to do your work for you.

0 项奖励
uddin__md
初学者
3,994 次查看

@Steve_Lionel  Dear Steve,  this is not class work. I try to write a program for WQI model. That is a another part of my module. 

0 项奖励
Steve_Lionel
名誉分销商 III
3,991 次查看

Ok - the code you had and the problem reminded me of class assignments.

0 项奖励
andrew_4619
名誉分销商 III
3,992 次查看
   REAL, DIMENSION(0:100)			:: X
   INTEGER                          :: N
   INTEGER                          :: IOstatus
   INTEGER                          :: i
   OPEN(1,FILE ='DATA07.DAT', STATUS = 'OLD') 
   DO
      READ(1,*,IOSTAT=IOstatus) N, (X(i), i = 1, N)

I was noting the array X start at x(0) through to x(100) , that is 101 elements but in your loop you have i = 1, n that is i does not start at zero.  Was that what you intended? X(0) is not set.

0 项奖励
uddin__md
初学者
3,973 次查看

@andrew_4619  Many thanks for your feedback. I solved this problem with array size correction.

0 项奖励
回复