c++使用二维数组初始化两个需要进行矩阵乘法运算的矩阵,同时显示可以进行 的矩阵乘法运算方式:a 矩阵的普通乘法,b 矩阵的哈达马积,c 矩阵的克 罗内克积,d 复数矩阵的普通乘法。
时间: 2024-05-06 15:01:39 浏览: 134
以下是使用二维数组初始化两个矩阵,并显示可以进行的矩阵乘法运算方式的 C++ 代码示例:
```cpp
#include <iostream>
#include <complex> // 复数类头文件
using namespace std;
const int ROW = 3; // 矩阵行数
const int COL = 3; // 矩阵列数
// 矩阵乘法函数
void matrix_mul(int a[][COL], int b[][COL], int c[][COL], char op) {
switch(op) {
case 'a': // 矩阵的普通乘法
for(int i=0; i<ROW; ++i) {
for(int j=0; j<COL; ++j) {
c[i][j] = 0;
for(int k=0; k<COL; ++k) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
break;
case 'b': // 矩阵的哈达马积
for(int i=0; i<ROW; ++i) {
for(int j=0; j<COL; ++j) {
c[i][j] = a[i][j] * b[i][j];
}
}
break;
case 'c': // 矩阵的克罗内克积
for(int i=0; i<ROW; ++i) {
for(int j=0; j<COL; ++j) {
for(int p=0; p<ROW; ++p) {
for(int q=0; q<COL; ++q) {
c[i*ROW+p][j*COL+q] = a[i][j] * b[p][q];
}
}
}
}
break;
case 'd': // 复数矩阵的普通乘法
complex<int> ca[ROW][COL], cb[ROW][COL], cc[ROW][COL];
for(int i=0; i<ROW; ++i) {
for(int j=0; j<COL; ++j) {
ca[i][j] = complex<int>(a[i][j], i+j); // 构造复数
cb[i][j] = complex<int>(b[i][j], i+j);
cc[i][j] = complex<int>(0, 0); // 复数矩阵初始化为0
}
}
for(int i=0; i<ROW; ++i) {
for(int j=0; j<COL; ++j) {
for(int k=0; k<COL; ++k) {
cc[i][j] += ca[i][k] * cb[k][j];
}
}
}
for(int i=0; i<ROW; ++i) {
for(int j=0; j<COL; ++j) {
c[i][j] = cc[i][j].real(); // 取复数实部
}
}
break;
}
}
int main() {
int a[ROW][COL] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 矩阵A
int b[ROW][COL] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}}; // 矩阵B
int c[ROW][COL]; // 乘积矩阵C
// 显示可以进行的矩阵乘法运算方式
cout << "可以进行的矩阵乘法运算方式为:" << endl;
cout << "a. 矩阵的普通乘法" << endl;
cout << "b. 矩阵的哈达马积" << endl;
cout << "c. 矩阵的克罗内克积" << endl;
cout << "d. 复数矩阵的普通乘法" << endl;
// 选择矩阵乘法方式
char op;
cout << "请选择矩阵乘法方式(输入对应字母即可):" << endl;
cin >> op;
// 进行矩阵乘法运算
matrix_mul(a, b, c, op);
// 显示乘积矩阵
cout << "乘积矩阵为:" << endl;
for(int i=0; i<ROW; ++i) {
for(int j=0; j<COL; ++j) {
cout << c[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
假设选择矩阵乘法方式为a,则控制台输出结果为:
```
可以进行的矩阵乘法运算方式为:
a. 矩阵的普通乘法
b. 矩阵的哈达马积
c. 矩阵的克罗内克积
d. 复数矩阵的普通乘法
请选择矩阵乘法方式(输入对应字母即可):
a
乘积矩阵为:
30 24 18
84 69 54
138 114 90
```
阅读全文
相关推荐
















