Beispiel #1
0
  /**
   * Sets the minimum and maximum values for each attribute in different arrays by walking through
   * every DataObject of the database
   */
  public void setMinMaxValues() {
    attributeMinValues = new double[getInstances().numAttributes()];
    attributeMaxValues = new double[getInstances().numAttributes()];

    // Init
    for (int i = 0; i < getInstances().numAttributes(); i++) {
      attributeMinValues[i] = attributeMaxValues[i] = Double.NaN;
    }

    Iterator iterator = dataObjectIterator();
    while (iterator.hasNext()) {
      DataObject dataObject = (DataObject) iterator.next();
      for (int j = 0; j < getInstances().numAttributes(); j++) {
        if (Double.isNaN(attributeMinValues[j])) {
          attributeMinValues[j] = dataObject.getInstance().value(j);
          attributeMaxValues[j] = dataObject.getInstance().value(j);
        } else {
          if (dataObject.getInstance().value(j) < attributeMinValues[j])
            attributeMinValues[j] = dataObject.getInstance().value(j);
          if (dataObject.getInstance().value(j) > attributeMaxValues[j])
            attributeMaxValues[j] = dataObject.getInstance().value(j);
        }
      }
    }
  }