仅使用C语言实现串行的矩阵向量乘法程序
时间: 2024-05-01 16:23:03 浏览: 85
可以的,下面是一个用C语言实现串行的矩阵向量乘法程序的示例代码:
```
#include <stdio.h>
#define N 3 /* 矩阵大小 */
/* 矩阵向量乘法 */
void matvec(double mat[N][N], double vec[N], double result[N])
{
int i, j;
for (i = 0; i < N; i++) {
result[i] = 0;
for (j = 0; j < N; j++) {
result[i] += mat[i][j] * vec[j];
}
}
}
int main()
{
double mat[N][N] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
double vec[N] = {1, 2, 3};
double result[N];
matvec(mat, vec, result);
printf("Result:\n%.2f\n%.2f\n%.2f\n", result[0], result[1], result[2]);
return 0;
}
```
这个程序使用了一个函数 `matvec`,用于计算矩阵向量乘法。该函数接受一个 `N*N` 的矩阵 `mat`,一个长度为 `N` 的向量 `vec`,并返回一个长度为 `N` 的向量 `result`,其中 `result = mat * vec`。
主函数中初始化矩阵和向量,并调用 `matvec` 函数,将结果打印出来。这个程序只使用了 C 语言中的基本语法和数据类型,没有使用任何库函数和线程库,是一个纯串行的实现。
阅读全文