コード例 #1
0
        /// <summary>
        /// ファジー要素の初期化関数
        /// </summary>
        private void FuzzyInitialize()
        {
            #region ルールテーブルの生成

            //シングルトン
            if (ruletable == null)
            {
                ruletable = new List <FuzzyRule>();
                string buffer = "";

                //ファイルが読み込める時
                try
                {
                    using (StreamReader sr = new StreamReader("FuzzyRuletable.csv", Encoding.GetEncoding("Shift_JIS")))
                    {
                        while ((buffer = sr.ReadLine()) != null)
                        {
                            FuzzyRule rule = FuzzyRule.Load();
                            //1行読み込み
                            string[] dataparam = buffer.Split(',');         //,で分解
                            rule.deltaState = char.Parse(dataparam[0]);
                            rule.thetaState = char.Parse(dataparam[1]);
                            rule.alphaState = char.Parse(dataparam[2]);
                            rule.betaState  = char.Parse(dataparam[3]);
                            rule.gammaState = char.Parse(dataparam[4]);
                            rule.output     = char.Parse(dataparam[5]);
                            rule.yesWeight  = double.Parse(dataparam[6]);
                            rule.noWeight   = double.Parse(dataparam[7]);
                            ruletable.Add(rule);
                        }
                    }
                }

                catch (Exception e)
                {
                    string tmp = "FileReadError";
                    MessageBox.Show("ファイルがありません", tmp, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }

            #endregion

            #region メンバーシップ関数の生成

            if (bandmsip == null)
            {
                string buffer = "";

                bandmsip = new List <MemberSipFunctionData>();

                //ファイルが読み込める時
                try
                {
                    using (StreamReader sr = new StreamReader("BandMembeSipData.csv", Encoding.GetEncoding("Shift_JIS")))
                    {
                        while ((buffer = sr.ReadLine()) != null)
                        {
                            MemberSipFunctionData msipData = MemberSipFunctionData.Load();
                            //1行読み込み
                            string[] dataparam = buffer.Split(',');         //,で分解
                            double   ss        = double.Parse(dataparam[0]);
                            double   se        = double.Parse(dataparam[1]);
                            double   ls        = double.Parse(dataparam[2]);
                            double   le        = double.Parse(dataparam[3]);
                            msipData.makeMenberSipFunction(ss, se, ls, le);
                            bandmsip.Add(msipData);
                        }
                    }
                }

                catch (Exception e)
                {
                    string tmp = "FileReadError";
                    MessageBox.Show("ファイルがありません", tmp, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }


            #endregion
        }
コード例 #2
0
        /// <summary>
        /// 生成メソッド
        /// </summary>
        /// <returns>初期化生成されたMeberSipFunctionData構造体</returns>
        public static MemberSipFunctionData Load()
        {
            MemberSipFunctionData msipd = new MemberSipFunctionData();

            return(msipd);
        }