protected static void writeAboutVariblesAndTerms(XmlWriter writer, TSAFuzzySystem Approximate) { writer.WriteStartElement("Variables"); writer.WriteAttributeString("Count", XmlConvert.ToString(Approximate.CountFeatures)); for (int i = 0; i < Approximate.CountFeatures; i++) { if (Approximate.AcceptedFeatures[i] == false) { continue; } writer.WriteStartElement("Variable"); writer.WriteAttributeString("Name", Approximate.LearnSamplesSet.InputAttributes[i].Name); writer.WriteAttributeString("Min", XmlConvert.ToString(Approximate.LearnSamplesSet.InputAttributes[i].Min)); writer.WriteAttributeString("Max", XmlConvert.ToString(Approximate.LearnSamplesSet.InputAttributes[i].Max)); List <Term> terms_for_varrible = Approximate.RulesDatabaseSet[0].TermsSet.Where(x => x.NumVar == i).ToList(); writer.WriteStartElement("Terms"); writer.WriteAttributeString("Count", XmlConvert.ToString(terms_for_varrible.Count)); foreach (var term in terms_for_varrible) { BaseUFSWriter.writeAboutTerm(writer, Approximate.RulesDatabaseSet[0].TermsSet.IndexOf(term), term); } writer.WriteEndElement(); writer.WriteEndElement(); } writer.WriteEndElement(); }
public static bool saveToUFS(TSAFuzzySystem Approximate, string fileName) { XmlWriterSettings settings = new XmlWriterSettings(); settings.Encoding = Encoding.UTF8; settings.Indent = true; settings.IndentChars = "\t"; settings.NewLineChars = Environment.NewLine; settings.NewLineHandling = NewLineHandling.None; settings.OmitXmlDeclaration = false; XmlWriter writer = XmlTextWriter.Create(fileName, settings); writer.WriteStartElement("FuzzySystem"); writer.WriteAttributeString("Type", "ApproximatorTakagiSugeno"); writeAboutVariblesAndTerms(writer, Approximate); writeAboutRules(writer, Approximate); BaseUFSWriter.writeAboutObservation(writer, Approximate); writeAboutEstimates(writer, Approximate); writer.WriteEndElement(); writer.Close(); return(false); }