Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/05/10 11:16:55 (14 years ago)
Author:
mkommend
Message:

added GetEnumeratedVariableValues in dataset (ticket #1074)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Dataset.cs

    r3981 r3994  
    3636  public sealed class Dataset : NamedItem, IStringConvertibleMatrix {
    3737    // empty constructor for cloning
    38     private Dataset() : base() {
    39     }
    40    
     38    private Dataset()
     39      : base() {
     40    }
     41
    4142    [StorableConstructor]
    4243    protected Dataset(bool deserializing)
     
    7071      get { return data[rowIndex, columnIndex]; }
    7172    }
    72 
    7373    public double this[string variableName, int rowIndex] {
    7474      get {
     
    8181      return GetVariableValues(variableIndex, 0, Rows);
    8282    }
    83 
    8483    public double[] GetVariableValues(int variableIndex, int start, int end) {
    8584      if (start < 0 || !(start <= end))
     
    9392      return values;
    9493    }
    95 
    9694    public double[] GetVariableValues(string variableName) {
    9795      return GetVariableValues(GetVariableIndex(variableName), 0, Rows);
    9896    }
    99 
    10097    public double[] GetVariableValues(string variableName, int start, int end) {
    10198      return GetVariableValues(GetVariableIndex(variableName), start, end);
    10299    }
    103100
    104     #region Variable name methods
     101    public IEnumerable<double> GetEnumeratedVariableValues(int variableIndex) {
     102      return GetEnumeratedVariableValues(variableIndex, 0, Rows);
     103    }
     104    public IEnumerable<double> GetEnumeratedVariableValues(int variableIndex, int start, int end) {
     105      if (start < 0 || !(start <= end))
     106        throw new ArgumentException("Start must be between 0 and end (" + end + ").");
     107      if (end > Rows || end < start)
     108        throw new ArgumentException("End must be between start (" + start + ") and dataset rows (" + Rows + ").");
     109      for (int i = 0; i < end - start; i++)
     110        yield return data[i + start, variableIndex];
     111    }
     112    public IEnumerable<double> GetEnumeratedVariableValues(string variableName) {
     113      return GetEnumeratedVariableValues(GetVariableIndex(variableName), 0, Rows);
     114    }
     115    public IEnumerable<double> GetEnumeratedVariableValues(string variableName, int start, int end) {
     116      return GetEnumeratedVariableValues(GetVariableIndex(variableName), start, end);
     117    }
     118
     119
     120
    105121    public string GetVariableName(int variableIndex) {
    106122      return variableNames[variableIndex];
     
    113129      throw new ArgumentException("The variable name " + variableName + " was not found.");
    114130    }
    115     #endregion
    116131
    117132    public double[,] GetClonedData() {
Note: See TracChangeset for help on using the changeset viewer.