/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.datamodel.types.api; import de.rcenvironment.core.datamodel.api.TypedDatum; /** * Matrix data type. Its cells use the {@link #Float} data type. All row and column indices are * zero-based. * * @author Robert Mischke * @author Doreen Seider */ public interface MatrixTD extends TypedDatum { /** * @param rowIndex zero-based row index of the element * @param columnIndex zero-based column index of the element * @return {@link FloatTD} of element */ FloatTD getFloatTDOfElement(int rowIndex, int columnIndex); /** * Sets {@link TypedDatum} for an element. * * @param number {@link FloatTD} to set * @param rowIndex zero-based row index of the element * @param columnIndex zero-based column index of the element */ void setFloatTDForElement(FloatTD number, int rowIndex, int columnIndex); /** * @return number of rows in the matrix */ int getRowDimension(); /** * @return number of columns in the matrix */ int getColumnDimension(); /** * Returns a new {@link MatrixTD} which is a sub-matrix of this one. * * @param endRowIndex ending zero-based row index, exclusive. * @param endColumnIndex ending zero-based row index, exclusive. * @return new {@link MatrixTD} */ MatrixTD getSubMatrix(int endRowIndex, int endColumnIndex); /** * Returns a new {@link MatrixTD} which is a sub-matrix of this one. * * @param beginRowIndex beginning zero-based row index, inclusive. * @param beginColumnIndex beginning zero-based row index, inclusive. * @param endRowIndex ending zero-based row index, exclusive. * @param endColumnIndex ending zero-based row index, exclusive. * @return new {@link MatrixTD} */ MatrixTD getSubMatrix(int beginRowIndex, int beginColumnIndex, int endRowIndex, int endColumnIndex); /** * Returns a {@link VectorTD} which is a sub-matrix (with columns dimension of 1) of this one. * * @param columnIndex zero-based column index * @return {@link VectorTD} */ VectorTD getColumnVector(int columnIndex); /** * Returns a {@link VectorTD} which is a sub-matrix (with row dimension of 1) of this one. * * @param rowIndex zero-based column index * @return {@link VectorTD} */ VectorTD getRowVector(int rowIndex); /** * Returns a two-dimensional array of type {@link FloatTD}. * * @return two dimensional Array */ FloatTD[][] toArray(); /** * @param maxLength maximum length of string representation * @return string representation */ String toLengthLimitedString(int maxLength); }