矩阵相乘的一维数组实现
来源:互联网 发布:java utf8编码转换器 编辑:程序博客网 时间:2024/04/30 12:56
欢迎访问我的新博客:http://www.milkcu.com/blog/
原文地址:http://www.milkcu.com/blog/archives/1369108860.html
矩阵相乘,听起来很简单,首先想到的是二维数组实现。那用一维数组如何实现呢?其实多维数组在本质上也是一维数组。
源代码如下,一个小小的程序,却总是因为某个字母而出错。
# include <stdio.h># define MAX 1000int main(void){int a[MAX], b[MAX];int ma, na;int mb, nb; //na == mb//matrix ascanf("%d%d", &ma, &na);for(int i = 0; i < ma; i++) {for(int j = 0; j < na; j++) {scanf("%d", &a[i * na + j]);}}printf("----- ----- ----- -----\n");for(int i = 0; i < ma; i++) {for(int j = 0; j < na; j++) {printf("%5d", a[i * na + j]);}putchar('\n');}printf("----- ----- ----- -----\n");//matrix bscanf("%d%d", &mb, &nb);for(int i = 0; i < mb; i++) {for(int j = 0; j < nb; j++) {scanf("%d", &b[i * nb + j]);}}printf("----- ----- ----- -----\n");for(int i = 0; i < mb; i++) {for(int j = 0; j < nb; j++) {printf("%5d", b[i * nb + j]);}putchar('\n');}printf("----- ----- ----- -----\n");//matrix a*bfor(int i = 0; i < ma; i++) {for(int j = 0; j < nb; j++) {int s = 0;for(int x = 0; x < ma; x++) {for(int y = 0; y < na; y++) {//s += a[i][x] * b[y][j];s += a[i * na + x] * b[y * nb + j];//printf("+%d+", s);}}printf("%5d", s);}putchar('\n');}}
这个程序的主要部分还是在矩阵相乘部分的处理吧。
(全文完)
- 矩阵相乘的一维数组实现
- 矩阵相乘 一维数组表示
- 使用指针数组实现这两个矩阵的相乘
- C语言动态二维数组实现矩阵的相乘
- 2维数组矩阵相乘
- cublasSgemm实现矩阵的相乘
- cublasSgemm实现矩阵的相乘
- C/C++实现矩阵相乘(一)
- hdu4920 滚动数组的矩阵相乘
- 数组::矩阵相乘
- 二维数组 矩阵相乘
- 矩阵相乘求最少相乘次数的C++实现代码
- tensorflow 实现 前一个tensor 的最后一维 矩阵相乘 后一个tensor 的第一维
- 将对称矩阵压缩存储,实现矩阵相乘,输出相乘后结果(用二维数组)
- 矩阵相乘的三种实现
- 矩阵相乘的两种实现方法
- 矩阵相乘算法的Java语言实现
- C语言 矩阵的相乘实现
- Wall 凸包
- Oracle10g新特性——记录DML错误日志
- Haar-like特征人脸检测
- Windows下PHP开启mcrypt扩展和SSL(OpenSSL)扩展支持
- 为什么clear:right不起作用
- 矩阵相乘的一维数组实现
- ⑤Windows7,Activte Admin(激活Admin)和激活register Polls(注册polls)和templates模板文件
- poj_3910 GCD Determinant
- 悟透delphi 第三章 多线程
- ThinkPHP的四种URL模式
- android如何实现文件按时间先后顺序排列显示
- Navigation Bar的简单设置
- JAVA设计模式——工厂方法
- hdu4512 吉哥系列故事——完美队形I