YAMP.YMath.HarmonicMean C# (CSharp) Method

HarmonicMean() public static method

public static HarmonicMean ( MatrixValue M ) : Value
M MatrixValue
return Value
        public static Value HarmonicMean(MatrixValue M)
        {
            if (M.Length == 0)
            {
                return ScalarValue.Zero;
            }

            if (M.IsVector)
            {
                var q = ScalarValue.Zero;

                for (var i = 1; i <= M.Length; i++)
                {
                    q += (1.0 / M[i]);
                }

                return M.Length / q;
            }

            var s = new MatrixValue(1, M.DimensionX);

            for (var i = 1; i < M.DimensionX; i++)
            {
                s[1, i] = ScalarValue.Zero;
            }

            for (var i = 1; i <= M.DimensionY; i++)
            {
                for (var j = 1; j <= M.DimensionX; j++)
                {
                    s[1, j] += (1.0 / M[i, j]);
                }
            }

            for (var j = 1; j <= s.DimensionX; j++)
            {
                s[1, j] = (M.DimensionY / s[1, j]);
            }

            return s;
        }

Usage Example

Exemplo n.º 1
0
 public Value Function(MatrixValue M)
 {
     return(YMath.HarmonicMean(M));
 }