Implement matrix addition and multiplication.
Implement matrix addition and multiplication.:-
#include <iostream>
#include <vector>
using namespace std;
// Function to perform matrix addition
vector<vector<int>> matrixAddition(const vector<vector<int>>& matrixA, const vector<vector<int>>& matrixB) {
int rows = matrixA.size();
int columns = matrixA[0].size();
vector<vector<int>> result(rows, vector<int>(columns, 0));
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
result[i][j] = matrixA[i][j] + matrixB[i][j];
}
}
return result;
}
// Function to perform matrix multiplication
vector<vector<int>> matrixMultiplication(const vector<vector<int>>& matrixA, const vector<vector<int>>& matrixB) {
int rowsA = matrixA.size();
int columnsA = matrixA[0].size();
int rowsB = matrixB.size();
int columnsB = matrixB[0].size();
if (columnsA != rowsB) {
throw invalid_argument("Cannot multiply the matrices. Invalid dimensions.");
}
vector<vector<int>> result(rowsA, vector<int>(columnsB, 0));
for (int i = 0; i < rowsA; i++) {
for (int j = 0; j < columnsB; j++) {
for (int k = 0; k < columnsA; k++) {
result[i][j] += matrixA[i][k] * matrixB[k][j];
}
}
}
return result;
}
// Function to display a matrix
void displayMatrix(const vector<vector<int>>& matrix) {
for (const auto& row : matrix) {
for (const auto& element : row) {
cout << element << " ";
}
cout << endl;
}
cout << endl;
}
int main() {
// Example matrices
vector<vector<int>> matrixA = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
vector<vector<int>> matrixB = {{9, 8, 7},
{6, 5, 4},
{3, 2, 1}};
// Matrix addition
vector<vector<int>> additionResult = matrixAddition(matrixA, matrixB);
cout << "Matrix Addition Result:" << endl;
displayMatrix(additionResult);
// Matrix multiplication
vector<vector<int>> multiplicationResult = matrixMultiplication(matrixA, matrixB);
cout << "Matrix Multiplication Result:" << endl;
displayMatrix(multiplicationResult);
return 0;
}
Comments
Post a Comment