/// <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 }
/// <summary> /// 生成メソッド /// </summary> /// <returns>初期化生成されたMeberSipFunctionData構造体</returns> public static MemberSipFunctionData Load() { MemberSipFunctionData msipd = new MemberSipFunctionData(); return(msipd); }