矩阵相乘
来源:互联网 发布:淘宝火影忍者暗部面具 编辑:程序博客网 时间:2024/06/09 22:49
如果两个矩阵A和B,符合条件A为一个m*n的矩阵,B为一个n*p的矩阵,则两个矩阵可以相乘,A*B的结果为一个m*p的矩阵C。
C11 = A11*B11+A12*B21+......+A1n*Bn1
.
.
.
C1p = A11*B1p+A12*2p+......+A1n*Bnp
.
.
.
Cnp = Am1*B1p+Am2*B2p+......+Amn*Bnp
#include <iostream>using namespace std;int fnMatrixMultriply(const int*,const int*,int*,const int,const int,const int);int main(){int m,n,p;int i,j;cout << "请输入矩阵A的维数m*n:" << endl;cout <<"m=";cin >> m;cout <<"n=";cin >> n;int* iarrA = new int[m*n];cout << "请输入矩阵A各元素:" << endl;for(i = 0;i < m;i++){for(j = 0;j < n;j++){cout << "iarrA" << i << j << "=";cin >> iarrA[i*n+j];}}cout << "请输入矩阵B的列数p:" << endl;cout <<"p=";cin >> p;int* iarrB = new int[n*p];cout << "请输入矩阵B各元素:" << endl;for(i = 0;i < n;i++){for(j = 0;j < p;j++){cout << "iarrB" << i << j << "=";cin >> iarrB[i*p+j];}}int* iarrC = new int[m*p];fnMatrixMultriply(iarrA,iarrB,iarrC,m,n,p);cout << "矩阵C=A*B,C的元素是:" << endl;for(i = 0;i < m;i++){for(j = 0;j < p;j++){cout << iarrC[i*p+j] << "\t";}cout << endl;}delete[] iarrA;delete[] iarrB;delete[] iarrC;return true;}int fnMatrixMultriply(const int* iarrA,const int* iarrB,int* iarrC,const int m,const int n,const int p){int itemp;if((m <= 0) || (n <= 0) || (p <= 0)){cout << "错误:数组维数m,n,p必须大于0!" << endl;return false;} for(int i = 0;i < m;i++){for(int j = 0;j < p;j++){itemp = 0;for(int k = 0;k < n;k++){itemp = itemp + iarrA[i*n+k] * iarrB[k*p+j];}iarrC[i*p+j] = itemp;}}}
阅读全文
0 0
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘
- 矩阵相乘!
- 矩阵相乘
- 6月季,高考季!
- js 中设置或获取自定义属性的方法setAttribute getAttribute attributes
- Groovy语法:闭包
- PHP功能模块扩展——ImageMagick
- PHP新特性
- 矩阵相乘
- 蓝桥-ALGO-38-接水问题
- Matlab GUI控件之——uitable
- nvidia_tx1开发笔记
- Visual Studio的Output窗口自动滚动行为控制
- xuptoj 1298: 找到最大的乘积
- 第一个只出现一次的字符
- Android RelativeLayout(相对布局的一些属性)
- 自己写一个linux的系统调用