c语言实现矩阵与向量相乘代码
时间: 2024-09-24 20:24:57 浏览: 63
在C语言中,矩阵与向量相乘通常涉及到二维数组(矩阵)和一维数组(向量)。由于C语言没有内置的向量化操作,我们需要通过循环来逐元素计算。下面是一个简单的示例,假设我们有一个m行n列的矩阵和一个长度为n的向量,结果会是一个m维的向量。
```c
#include <stdio.h>
// 函数声明
double* matrix_vector_multiply(int m, int n, double mat[], double vec[]) {
int size = m;
double result[size]; // 结果向量
for (int i = 0; i < size; i++) { // 遍历矩阵每一行
for (int j = 0; j < n; j++) { // 对于当前行的每个元素
result[i] += mat[i * n + j] * vec[j]; // 矩阵元素与向量对应位置相乘并累加到结果向量
}
}
return result;
}
int main() {
int m = 3, n = 4; // 假设矩阵3x4,向量4维
double mat[m][n], vec[n], result[m];
// 初始化矩阵和向量...
// ...
// 调用函数
result = matrix_vector_multiply(m, n, mat, vec);
// 输出结果
for (int i = 0; i < m; i++) {
printf("Result[%d]: %.2f\n", i, result[i]);
}
return 0;
}
```
阅读全文