用c++写matrix矩阵的运算(double)
时间: 2023-05-16 20:05:26 浏览: 185
以下是一个简单的 C 代码示例,用于执行矩阵乘法运算:
```c
#include <stdio.h>
void matrix_multiply(double *A, double *B, double *C, int m, int n, int p) {
int i, j, k;
for (i = 0; i < m; i++) {
for (j = 0; j < p; j++) {
C[i * p + j] = 0;
for (k = 0; k < n; k++) {
C[i * p + j] += A[i * n + k] * B[k * p + j];
}
}
}
}
int main() {
double A[2][3] = {{1, 2, 3}, {4, 5, 6}};
double B[3][2] = {{7, 8}, {9, 10}, {11, 12}};
double C[2][2];
int m = 2, n = 3, p = 2;
int i, j;
matrix_multiply(&A[0][0], &B[0][0], &C[0][0], m, n, p);
for (i = 0; i < m; i++) {
for (j = 0; j < p; j++) {
printf("%lf ", C[i][j]);
}
printf("\n");
}
return 0;
}
```
该代码使用了一个名为 `matrix_multiply` 的函数,该函数接受三个矩阵指针 `A`、`B` 和 `C`,以及三个整数 `m`、`n` 和 `p`,分别表示矩阵 `A` 的行数和列数、矩阵 `B` 的行数和列数,以及矩阵 `C` 的行数和列数。函数使用三个嵌套的循环来执行矩阵乘法运算,并将结果存储在矩阵 `C` 中。
在 `main` 函数中,我们定义了两个输入矩阵 `A` 和 `B`,以及一个输出矩阵 `C`,并将它们传递给 `matrix_multiply` 函数。然后,我们使用两个嵌套的循环来打印矩阵 `C` 中的元素。
请注意,该代码假定输入矩阵 `A` 和 `B` 的元素已经按行存储在内存中,而输出矩阵 `C` 的元素也将按行存储在内存中。如果您的矩阵存储方式不同,请相应地修改代码。
阅读全文