 
     size_t j = 0;
     while (ss >> token)
-      _hx(i, j++) = str2float(token);
+      _hx(j++, i) = str2float(token);
     ++i;
   }
 }


void DataSet::rescaleFeature(float lower, float upper) {

  size_t rows = this->size(),
	 cols = this->_dim;

  for (size_t i=0; i<this->size(); ++i) {
    float min = _hx(i, 0),
	  max = _hx(i, 0);

    for (size_t j=0; j<cols; ++j) {
      float x = _hx(i, j);
      if (x > max) max = x;
      if (x < min) min = x;
    }

    if (max == min) {
      for (size_t j=0; j<cols; ++j)
	_hx(i, j) = upper;
      continue;
    }

    float ratio = (upper - lower) / (max - min);
    for (size_t j=0; j<cols; ++j)
      _hx(i, j) = (_hx(i, j) - min) * ratio + lower;
  }
}


      size_t j = str2float(token.substr(0, pos)) - 1;
      float value = str2float(token.substr(pos + 1));
      
      _hx(j, i) = value;
    }
    ++i;
  }
