C语言之两矩阵乘法的实现
来源:互联网 发布:美国地图 软件 编辑:程序博客网 时间:2024/05/29 08:49
首先我们要清楚矩阵乘法实现需要满足的条件, 矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义[1] 。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。
//关于任意两个矩阵的乘法运算//关于任意两个矩阵的乘法运算#include<stdio.h>#include<stdlib.h>#define MAX 10matrix_multiplication(int line1, int column1, int column2, int arr1[MAX][MAX], int arr2[MAX][MAX], int arr3[MAX][MAX]){ int i, j, k; int ret; for (i = 0; i < line1; i++) { for (j = 0; j < column1; j++) { ret = 0; for (k = 0; k < column2+1; k++) { ret += arr1[i][k] * arr2[k][j]; //按照矩阵的乘法规则进行运算 } arr3[i][j] = ret; } }}int main(){ int line1, column1, column2; int i, j; int temp; int arr1[MAX][MAX], arr2[MAX][MAX], arr3[MAX][MAX]; printf("输入第一个矩阵的行数:\n"); scanf("%d", &line1); printf("输入第一个矩阵的列数:\n"); scanf("%d", &column1); printf("输入第一个矩阵的列数:\n"); scanf("%d", &column2); printf("输入第一个矩阵的元素(%d*%d):\n",line1,column1); for (i = 0; i < line1; i++) { for (j = 0; j < column1; j++) { scanf("%d", &temp); arr1[i][j] = temp; } } printf("输入第二个矩阵的元素(%d*%d):\n", column1, column2); //因为在这里矩阵的乘法会要求第一个的列与第二个行相等 for (i = 0; i < column1; i++) { for (j = 0; j < column2; j++) { scanf("%d", &temp); arr2[i][j] = temp; } } matrix_multiplication(line1, column1, column2, arr1, arr2, arr3); printf("输出的两个矩阵的乘法运算的结果是:\n"); for (i = 0; i<line1; i++) { for (j = 0; j<column2; j++) printf("%ld ", arr3[i][j]); printf("\n"); } system("pause"); return 0;}
运行结果如图:
代码如果有问题,希望大家指出。
0 0
- C语言之两矩阵乘法的实现
- 矩阵乘法的C语言实现
- 矩阵乘法C语言实现
- C语言实现矩阵乘法
- C语言实现矩阵乘法
- 矩阵的乘法和求逆(C语言实现)
- 复数矩阵乘法C语言实现
- 复数矩阵乘法C语言实现
- C语言矩阵乘法(指针实现)
- C语言矩阵乘法
- C 语言详解 之 乘法表的实现
- C语言 · 矩阵乘法
- 矩阵乘法(C语言)
- MPI矩阵乘法的两种实现方法
- 二维数组动态分配(c语言)之HWOJ矩阵乘法
- 算法导论C语言实现: 分治策略 -- 矩阵乘法的Strassen算法
- C语言—用malloc函数实现任意阶矩阵的乘法
- 【矩阵乘法】:矩阵乘法的基本实现
- Android-布局之FrameLayout
- 【操作系统】设备管理
- Java学习经验
- EditPlus编辑器使用
- Thinking in java 学习记录
- C语言之两矩阵乘法的实现
- MATLAB绘制空间域高斯函数
- hdu2680Choose the best route
- SQL基础知识(1)
- C# 写日志,用于记录程序运行状态
- <div+css页面布局课堂笔记>5---与盒子相关的CSS属性第二部分
- 从此不求人:自主研发一套PHP前端开发框架(8)
- 从此以后,在这里写点东西咯
- TFIDF并不能用来说明特征词的重要与否,只是用来区分不同文档