Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationProblem.cs	(revision 5523)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationProblem.cs	(revision 5524)
@@ -279,4 +279,7 @@
         FunctionTreeGrammar.RemoveSymbol(symbol);
       foreach (var varSymbol in FunctionTreeGrammar.Symbols.OfType<HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable>()) {
+        varSymbol.VariableNames = ClassificationProblemData.InputVariables.CheckedItems.Select(x => x.Value.Value);
+      }
+      foreach (var varSymbol in FunctionTreeGrammar.Symbols.OfType<HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.VariableCondition>()) {
         varSymbol.VariableNames = ClassificationProblemData.InputVariables.CheckedItems.Select(x => x.Value.Value);
       }
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Formatters/SymbolicExpressionTreeMATLABFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Formatters/SymbolicExpressionTreeMATLABFormatter.cs	(revision 5523)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Formatters/SymbolicExpressionTreeMATLABFormatter.cs	(revision 5524)
@@ -84,6 +84,6 @@
         foreach (string variableName in variableNames)
           stringBuilder.AppendLine("  " + variableName + " = Data(:, ???);");
-        stringBuilder.AppendLine("  for "+CurrentIndexVariable+" = size(Data,1):-1:1");
-        stringBuilder.AppendLine("    Target_estimated("+CurrentIndexVariable+") = " + FormatRecursively(node.SubTrees[0]) + ";");
+        stringBuilder.AppendLine("  for " + CurrentIndexVariable + " = size(Data,1):-1:1");
+        stringBuilder.AppendLine("    Target_estimated(" + CurrentIndexVariable + ") = " + FormatRecursively(node.SubTrees[0]) + ";");
         stringBuilder.AppendLine("  end");
         stringBuilder.AppendLine("end");
@@ -98,4 +98,9 @@
         stringBuilder.AppendLine("  y = (f0 + 2*f1 - 2*f3 - f4) / 8;");
         stringBuilder.AppendLine("end");
+        stringBuilder.AppendLine("function y = sigmoid(slope, x, threshold, a, b)");
+        stringBuilder.AppendLine("  p = 1.0 / (1 + exp(-slope * (x - threshold)));");
+        stringBuilder.AppendLine("  y = p * a + (1-p) * b;");
+        stringBuilder.AppendLine("end");
+
         return stringBuilder.ToString();
       }
@@ -269,4 +274,11 @@
         stringBuilder.Append(FormatRecursively(node.SubTrees[0]));
         currentLag -= laggedNode.Lag;
+      } else if (symbol is VariableCondition) {
+        var varConditionNode = node as VariableConditionTreeNode;
+        stringBuilder.AppendLine(" sigmoid(" + varConditionNode.Slope.ToString(CultureInfo.InvariantCulture) + ", " +
+          varConditionNode.VariableName + LagToString(currentLag) + ", " +
+          varConditionNode.Threshold.ToString(CultureInfo.InvariantCulture) + ", " +
+          FormatRecursively(varConditionNode.SubTrees[0]) + ", " +
+          FormatRecursively(varConditionNode.SubTrees[1]) + ")");
       } else {
         stringBuilder.Append("ERROR");
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/VariableConditionTreeNode.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/VariableConditionTreeNode.cs	(revision 5523)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/VariableConditionTreeNode.cs	(revision 5524)
@@ -88,6 +88,6 @@
 
     public override string ToString() {
-      return variableName + " > " + threshold.ToString("E4") + Environment.NewLine +
-        "slope: " + slope.ToString("E4");
+      string thresholdString = threshold > 0 ? "+" + threshold.ToString("E4") : threshold.ToString("E4");
+      return "Sigmoid " + "(" + slope.ToString("E4") + ", " + variableName + thresholdString + ")";
     }
   }
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/VariableFrequencyAnalyser.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/VariableFrequencyAnalyser.cs	(revision 5523)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/VariableFrequencyAnalyser.cs	(revision 5524)
@@ -112,6 +112,8 @@
       var variableNames = from node in tree.IterateNodesPrefix().OfType<VariableTreeNode>()
                           select node.VariableName;
+      var variableNamesInConditions = from node in tree.IterateNodesPrefix().OfType<VariableConditionTreeNode>()
+                                      select node.VariableName;
 
-      foreach (var variableName in variableNames) {
+      foreach (var variableName in variableNames.Concat(variableNamesInConditions)) {
         if (!references.ContainsKey(variableName)) {
           references[variableName] = 1;
