@Override
	public Matrix substract(Matrix matrix) throws IllegalArgumentException {
		int rows = getRowsNumber();
		int cols = getColumnsNumber();
		if (matrix.getRowsNumber() != rows || matrix.getColumnsNumber() != cols) {
			throw new IllegalArgumentException("Macierze o różnych rozmiarach");
		}

		try {
			for (int i = 0; i < rows; i++) {
				for (int j = 0; j < cols; j++) {
					_values[i][j] -= matrix.getElementAt(i+1, j+1);
				}
			}
		} catch (OutOfBoundsException e) {
			// Well, tutaj ten exception na pewno sie nie pojawi,
			// skoro sprawdzilem czy sa rownych rozmiarów te macierze
			e.printStackTrace();
		}
		return this;
	}