Changeset 15131 for stable/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionMATLABFormatter.cs
- Timestamp:
- 07/06/17 10:19:37 (7 years ago)
- Location:
- stable
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Symbolic
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionMATLABFormatter.cs
r14186 r15131 21 21 22 22 using System.Globalization; 23 using System.Linq; 23 24 using System.Text; 24 25 using HeuristicLab.Common; … … 77 78 stringBuilder.AppendLine(" y = (f0 + 2*f1 - 2*f3 - f4) / 8;"); 78 79 stringBuilder.AppendLine("end"); 80 81 var factorVariableNames = 82 symbolicExpressionTree.IterateNodesPostfix() 83 .OfType<FactorVariableTreeNode>() 84 .Select(n => n.VariableName) 85 .Distinct(); 86 87 foreach (var factorVarName in factorVariableNames) { 88 var factorSymb = symbolicExpressionTree.IterateNodesPostfix() 89 .OfType<FactorVariableTreeNode>() 90 .First(n => n.VariableName == factorVarName) 91 .Symbol; 92 stringBuilder.AppendFormat("function y = switch_{0}(val, v)", factorVarName).AppendLine(); 93 var values = factorSymb.GetVariableValues(factorVarName).ToArray(); 94 stringBuilder.AppendLine("switch val"); 95 for (int i = 0; i < values.Length; i++) { 96 stringBuilder.AppendFormat(CultureInfo.InvariantCulture, " case \"{0}\" y = v({1})", values[i], i).AppendLine(); 97 } 98 stringBuilder.AppendLine("end"); 99 stringBuilder.AppendLine(); 100 } 101 79 102 return stringBuilder.ToString(); 80 103 } … … 296 319 stringBuilder.Append("*"); 297 320 stringBuilder.Append(variableTreeNode.VariableName + LagToString(currentLag)); 321 } else if (symbol is HeuristicLab.Problems.DataAnalysis.Symbolic.FactorVariable) { 322 var factorNode = node as FactorVariableTreeNode; 323 var weights = string.Join(" ", factorNode.Weights.Select(w => w.ToString("G17", CultureInfo.InvariantCulture))); 324 stringBuilder.AppendFormat("switch_{0}(\"{1}\",[{2}])", 325 factorNode.VariableName, factorNode.VariableName, weights) 326 .AppendLine(); 327 } else if (symbol is HeuristicLab.Problems.DataAnalysis.Symbolic.BinaryFactorVariable) { 328 var factorNode = node as BinaryFactorVariableTreeNode; 329 stringBuilder.AppendFormat(CultureInfo.InvariantCulture, 330 "((strcmp({0},\"{1}\")==1) * {2:G17})", factorNode.VariableName, factorNode.VariableValue, factorNode.Weight); 298 331 } else if (symbol is Power) { 299 332 stringBuilder.Append("(");
Note: See TracChangeset
for help on using the changeset viewer.