統計クラス

Namespace: FVIL
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
[SerializableAttribute]
public class Statistics : ICloneable, IFviCopyable
Visual Basic
<SerializableAttribute>
Public Class Statistics
	Implements ICloneable, IFviCopyable

Remarks

実数データの単純な統計を行うクラスです。
出力するデータは、要素数、平均、最小、最大、標準偏差、合計、分散 です。

初期値と範囲:
プロパティ初期値範囲説明
Count00~対象データの要素数を示します。
Mean0(対象データに依存する)対象データの平均値を示します。
Min0(対象データに依存する)対象データの最小値を示します。
Max0(対象データに依存する)対象データの最大値を示します。
Sigma0(対象データに依存する)対象データの標準偏差(標本分散の平方根)を示します。
Sum0(対象データに依存する)対象データの合計値を示します。
Variance0(対象データに依存する)対象データの分散(標本分散)を示します。

Examples

C# Copy imageCopy
//    $Revision: 1.1 $

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using fvalgcli;    // FvPluginXXXX attribute requires fvalgcli

namespace User.SampleCode
{
    public partial class Basic
    {
        /// <summary>
        /// 統計 (IEnumerable 指定)
        /// </summary>
        [FvPluginExecute]
        public void Statistics1()
        {
            List<double> datas1 = new List<double>();
            for (int i = 0; i < 10; i++)
                datas1.Add(i * 10 + i * 0.1);

            FVIL.Statistics stat = new FVIL.Statistics(datas1);
            Statistics_Print(stat);

            // 更新.
            int[] datas2 = new int[10];
            for (int i = 0; i < 10; i++)
                datas2[i] = (i * 10);

            stat.Update(datas2);
            Statistics_Print(stat);
        }

        /// <summary>
        /// 統計 (ポインタ指定)
        /// </summary>
        [FvPluginExecute]
        public void Statistics2()
        {
            FVIL.DOUBLE_ARRAY datas1 = new FVIL.DOUBLE_ARRAY();
            datas1.Resize(10);
            for (int i = 0; i < 10; i++)
                datas1[i] = (i * 10 + i * 0.1);

            FVIL.Statistics stat = new FVIL.Statistics(datas1.Address, datas1.Count);
            Statistics_Print(stat);

            // 更新.
            FVIL.INT_ARRAY datas2 = new FVIL.INT_ARRAY();
            datas2.Resize(10);
            for (int i = 0; i < 10; i++)
                datas2[i] = (i * 10);

            stat.Update(datas2.Address, datas2.Count);
            Statistics_Print(stat);
        }

        /// <summary>
        /// 統計データ出力
        /// </summary>
        public void Statistics_Print(FVIL.Statistics stat)
        {
            Console.WriteLine("Count = {0}", stat.Count);
            Console.WriteLine("Sum   = {0}", stat.Sum);
            Console.WriteLine("Mean  = {0}", stat.Mean);
            Console.WriteLine("Min   = {0}", stat.Min);
            Console.WriteLine("Max   = {0}", stat.Max);
            Console.WriteLine("Sigma = {0}", stat.Sigma);
            Console.WriteLine("Var   = {0}", stat.Variance);
        }
    }
}

実行結果: (double)
Count = 10
Sum   = 454.5
Mean  = 45.45
Min   = 0
Max   = 90.9
Sigma = 29.010041365017
Var   = 841.5825

実行結果: (int)
Count = 10
Sum   = 450
Mean  = 45
Min   = 0
Max   = 90
Sigma = 28.7228132326901
Var   = 825

Visual Basic Copy imageCopy
'    $Revision: 1.1 $

Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Drawing
Imports fvalgcli
' FvPluginXXXX attribute requires fvalgcli
Namespace SampleCode
    Partial Public Class Basic
        ''' <summary>
        ''' 統計 (IEnumerable 指定)
        ''' </summary>
        <FvPluginExecute()> _
        Public Sub Statistics1()
            Dim datas1 As New List(Of Double)()
            For i As Integer = 0 To 9
                datas1.Add(i * 10 + i * 0.1)
            Next

            Dim stat As New FVIL.Statistics(datas1)
            Statistics_Print(stat)

            ' 更新.
            Dim datas2 As Integer() = New Integer(9) {}
            For i As Integer = 0 To 9
                datas2(i) = (i * 10)
            Next

            stat.Update(datas2)
            Statistics_Print(stat)
        End Sub

        ''' <summary>
        ''' 統計 (ポインタ指定)
        ''' </summary>
        <FvPluginExecute()> _
        Public Sub Statistics2()
            Dim datas1 As New FVIL.DOUBLE_ARRAY()
            datas1.Resize(10)
            For i As Integer = 0 To 9
                datas1(i) = (i * 10 + i * 0.1)
            Next

            Dim stat As New FVIL.Statistics(datas1.Address, datas1.Count)
            Statistics_Print(stat)

            ' 更新.
            Dim datas2 As New FVIL.INT_ARRAY()
            datas2.Resize(10)
            For i As Integer = 0 To 9
                datas2(i) = (i * 10)
            Next

            stat.Update(datas2.Address, datas2.Count)
            Statistics_Print(stat)
        End Sub

        ''' <summary>
        ''' 統計データ出力
        ''' </summary>
        Public Sub Statistics_Print(stat As FVIL.Statistics)
            Console.WriteLine("Count = {0}", stat.Count)
            Console.WriteLine("Sum   = {0}", stat.Sum)
            Console.WriteLine("Mean  = {0}", stat.Mean)
            Console.WriteLine("Min   = {0}", stat.Min)
            Console.WriteLine("Max   = {0}", stat.Max)
            Console.WriteLine("Sigma = {0}", stat.Sigma)
            Console.WriteLine("Var   = {0}", stat.Variance)
        End Sub
    End Class
End Namespace

実行結果: (double)
Count = 10
Sum   = 454.5
Mean  = 45.45
Min   = 0
Max   = 90.9
Sigma = 29.010041365017
Var   = 841.5825

実行結果: (int)
Count = 10
Sum   = 450
Mean  = 45
Min   = 0
Max   = 90
Sigma = 28.7228132326901
Var   = 825

Inheritance Hierarchy

System..::..Object
FVIL..::..Statistics

See Also