C++使用数组实现下面矩阵加法和矩阵转置运算,下面先简单说明运算规则。 矩阵加法被定义在两个相同大小的矩阵中。两个m×n矩阵A和B的和,标记为A+ B,结果也是一个m×n矩阵,其内的各元素为其相对应元素相加
时间: 2024-09-29 15:11:54 浏览: 50
在C++中,你可以通过二维数组来实现矩阵的加法和转置操作。首先,让我们看下如何实现矩阵加法:
```cpp
#include <iostream>
// 定义矩阵类
class Matrix {
private:
int m, n; // 矩阵的行数和列数
double data[100][100]; // 用于存储数据的动态数组
public:
Matrix(int rows, int cols) : m(rows), n(cols) {}
// 设置矩阵元素
void set(int i, int j, double value) {
data[i][j] = value;
}
// 加法运算
Matrix add(const Matrix& other) const {
if (m != other.m || n != other.n) {
throw std::invalid_argument("Matrix dimensions do not match.");
}
Matrix result(m, n);
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
result.set(i, j, data[i][j] + other.data[i][j]);
}
}
return result;
}
};
int main() {
Matrix A(2, 2);
A.set(0, 0, 1.0); A.set(0, 1, 2.0);
A.set(1, 0, 3.0); A.set(1, 1, 4.0);
Matrix B(2, 2);
B.set(0, 0, 5.0); B.set(0, 1, 6.0);
B.set(1, 0, 7.0); B.set(1, 1, 8.0);
Matrix sum = A.add(B);
// 打印结果矩阵
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
std::cout << sum.data[i][j] << " ";
}
std::cout << "\n";
}
return 0;
}
```
接下来是矩阵转置的实现:
```cpp
// 转置矩阵函数
Matrix transpose() const {
Matrix transposed(n, m);
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
transposed.set(j, i, data[i][j]); // 将行变成列
}
}
return transposed;
}
// 示例
Matrix C = A.transpose();
```
阅读全文