public void setMetaData(String varName, long nrows, long ncols) throws DMLRuntimeException {
    MatrixObject mo = getMatrixObject(varName);
    if (mo.getNumRows() == nrows && mo.getNumColumns() == ncols) return;

    MetaData oldMetaData = mo.getMetaData();
    if (oldMetaData == null || !(oldMetaData instanceof MatrixFormatMetaData))
      throw new DMLRuntimeException("Metadata not available");

    MatrixCharacteristics mc =
        new MatrixCharacteristics(
            (long) nrows,
            (long) ncols,
            (int) mo.getNumRowsPerBlock(),
            (int) mo.getNumColumnsPerBlock());
    mo.setMetaData(
        new MatrixFormatMetaData(
            mc,
            ((MatrixFormatMetaData) oldMetaData).getOutputInfo(),
            ((MatrixFormatMetaData) oldMetaData).getInputInfo()));
  }