@Override
	public boolean equals(Object obj) {
		if(this == obj) return true;
		if(obj == null) return false;
		if(getClass() != obj.getClass()) return false;
		Matrix other = (Matrix) obj;
		if(numRows != other.numRows) return false;
		if(numColumns != other.numColumns) return false;
		if(!Arrays.deepEquals(elements, other.elements)) return false;
		return true;
	}