Can someone help me with this problem...
A is an m*n matrix
B is an n*p matrix
product AB is an m*p
then I have to write a function void matrix product that takes two matrices of integers as two separate arguments and then calculates the product of those matrices and prints the results on screen. Create constants to store sizes of matrices.

Recommended Answers

All 2 Replies

First you should represent the matrix:

int **matrix_1=new int*[m];
            for(i=0; i<m; i++){ matrix_1[i] = new int[n];}
// then assign the value to each element.
// so a matrix_1 is formed and its demission is m*n;
// the same can applied to matrix_2, which is n*p;
// matrix_3 which is m*p;
// as the calculation of the product. maybe can handle like this:
        for(i=0, i<m; i++ )
            for(j=0; j<p: j++)
                  matrix_3[i][j] = matrix_1[][]*matrix_2[][];
//this is the key.
template <typename T, int m, int n, int p>
Matrix<T, m, p> operator *(const Matrix<T, m, n>& A, const Matrix<T, n, p>& B) {
	Matrix<T, m, p> ret;
	for (int i = 0; i < m; i++)
		for (int j = 0; j < p; j++) {
			ret[i][j] = 0;
			for (int k = 0; k < n; k++)
				ret[i][j] += (A[i][k] * B[k][j]);
		}
	return ret;
}

You can accordingly replace the matrix template instances with properly allocated double or single arrays.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.