code: public Matrix transformColumn(int j, VectorFunction function) {
          Matrix result = copy();
          VectorIterator it = result.iteratorOfColumn(j);
  
          while (it.hasNext()) {
              double x = it.next();
              int i = it.index();
              it.set(function.evaluate(i, x));
          }
  
          return result;
      }
docs: Builds a new matrix by applying given {@code function} to each element of specified
  column in this matrix.
  
  @param j the column index
  @param function the vector function
  
  @return the transformed matrix