I'm currently working on my own matrix calculator in Java. Everything looks good for me as of now, yet I encountered one problem.
private void multiplyMatrix() {
if (getNumberOfColumns() == 2) {
for (int getRows = 0; getRows < getNumberOfRows(); getRows++) {
for (int getColumns = 0; getColumns < getNumberOfColumns(); getColumns++) {
System.out.print(
matrixArray[getRows][0] * matrixSecondArray[0][getColumns] +
matrixArray[getRows][1] * matrixSecondArray[1][getColumns] + " ");
}
System.out.println();
}
}
if (getNumberOfColumns() == 3) {
for (int getRows = 0; getRows < getNumberOfRows(); getRows++) {
for (int getColumns = 0; getColumns < getNumberOfColumns(); getColumns++) {
System.out.print(
matrixArray[getRows][0] * matrixSecondArray[0][getColumns] +
matrixArray[getRows][1] * matrixSecondArray[1][getColumns] +
matrixArray[getRows][2] * matrixSecondArray[2][getColumns] + " ");
}
System.out.println();
}
}
}
What I want to accomplish is to "dynamically" add next line of code:
matrixArray[getRows][nextNumber] * matrixSecondArray[nextNumber][getColumns] +
to avoid redundancy (multiple if statements && multiple lines of the same code) based on how large will matrix be (for example if matrix will be 4x4 it will add 3 as nextNumber and so on.
You should alter your System.out.print() statement with something like this :
int sum = 0;
for(colIndex = 0; colIndex < getNumberOfColumns(); colIndex++)
sum += matrixArray[getRows][colIndex] * matrixSecondArray[colIndex][getColumns];
System.out.print(sum + " ");
It iterates over cells in matrix row, and calculates sum of appropriate products, as in your code.