Merge remote-tracking branch 'refs/remotes/TheAlgorithms/master'

This commit is contained in:
Phil-Schmidt 2017-11-19 14:26:36 +01:00
commit 315e74d4c1

View File

@ -37,6 +37,7 @@ public class Matrix {
System.out.println("2 * m2:\n" + m2.scale(2)); System.out.println("2 * m2:\n" + m2.scale(2));
System.out.println("m2 + m3:\n" + m2.plus(m3)); System.out.println("m2 + m3:\n" + m2.plus(m3));
System.out.println("m2 - m3:\n" + m2.minus(m3)); System.out.println("m2 - m3:\n" + m2.minus(m3));
System.out.println("m2 * m3: \n"+m2.multiply(m3));
} }
@ -158,6 +159,32 @@ public class Matrix {
return new Matrix(newData); return new Matrix(newData);
} }
/**
* Multiplies this matrix with another matrix.
*
* @param other : Matrix to be multiplied with
* @return product
*/
public Matrix multiply(Matrix other) throws RuntimeException {
int[][] newData = new int[this.data.length][other.getColumns()];
if(this.getColumns() !=other.getRows())
throw new RuntimeException("The two matrices cannot be multiplied.");
int sum;
for (int i = 0; i < this.getRows(); ++i)
for(int j = 0; j < other.getColumns(); ++j){
sum = 0;
for(int k=0;k<this.getColumns();++k){
sum += this.data[i][k] * other.getElement(k, j);
}
newData[i][j] = sum;
}
return new Matrix(newData);
}
/** /**
* Checks if the matrix passed is equal to this matrix * Checks if the matrix passed is equal to this matrix
* *