动态大小的矩阵相乘模板
2017-03-20 16:03
218 查看
小试牛刀,随便写了一个小程序。
这里用到的计算是最原始的定义法,可能的话,我会写出一些经过优化的代码贴上来。待更,持续更新中……
#include <bits/stdc++.h> using namespace std; template<typename T>//动态矩阵相乘模板 void matrixMultiplication( vector< vector<T> > &res, vector< vector<T> > &src1, vector< vector<T> > &src2 ,size_t row1 , size_t col1 , size_t col2 ){//引用传递 size_t i, j, k;// ( 64 bits is long) unsigned int vector<T> temp; T t; for(i=0; i<row1; ++i){//实现矩阵相乘 res = src1 * src2 . temp.clear(); for(j=0; j<col2; ++j){ t = 0; for(k=0; k<col1; ++k) t += src1[i][k]*src2[k][j]; temp.push_back(t);//单个单个的填充每一行的元素 } res.push_back(temp);//一行一行的填充整个矩阵 } } template<typename T>//动态矩阵的读入 void matrixInit( vector<vector<T> > &src, size_t m, size_t n){// m x n 矩阵 size_t i,j; vector<T> temp; T t; for( i=0; i<m; ++i){ for( j=0; j<n; ++j){ cin>>t; temp.push_back(t);//读入元素 } src.push_back(temp);//读入行 temp.clear(); } } template<typename T> void matrixOutput(vector<vector<T> > &src){ size_t i,j; for( i=0; i<src.size(); ++i){ vector <T> temp( src[i] );//构造复制 // vector<T> v1(v2); 相当于 v1.assign(v2.begin(), v2.end()); for( j=0; j<temp.size(); ++j) cout<<temp[j]<<" "; cout<<endl; } } int main(){ vector<vector<int> > a,b,result;// res = a x b . size_t m, n, v; cout<<"Please input your matrix's row and col :"<<endl; scanf("%d x %d",&m,&n); matrixInit( a, m, n); cout<<"Please input your matrix's row and col :"<<endl; scanf("%d x %d",&n,&v); matrixInit( b, n ,v); matrixMultiplication( result, a, b, m, n, v); cout<<"The result of your matrics' multiplication is "<<endl; matrixOutput( result); return 0; }
这里用到的计算是最原始的定义法,可能的话,我会写出一些经过优化的代码贴上来。待更,持续更新中……
相关文章推荐
- 动态规划之矩阵链相乘(matchain算法)
- [hdu4965]矩阵快速幂优化 不规则矩阵相乘 模板
- C++动态建立矩阵及矩阵相乘
- C++动态建立矩阵及矩阵相乘
- NYOJ 题目298 点的变换(数学,矩阵相乘,模板经典)
- 模板 2017-11-09 矩阵 单位化矩阵 矩阵的相乘和快速幂
- 动态规划之矩阵连乘问题的两个矩阵相乘
- 动态规划经典问题——求矩阵相乘的最佳顺序
- C语言动态二维数组实现矩阵的相乘
- Blitz++ 矩阵相乘(张量运算) 示例
- 动态根据FLASH文件的宽和高,自适应大小显示FLASH
- ASP.NET中如何动态生成模板列
- 在 DataList Web 服务器控件中动态创建模板
- 利用模板实现动态的继承体系
- 动态改变模态窗口的大小
- C#动态分配数组大小函数
- img动态大小
- (转载)嵌套的DataGrid如何为子DataGrid动态增加模板列
- DataGrid动态生成模板列,模板列里面有一个TextBox,如何获取用户在TextBox里面输入的值啊?
- 调查模板动态生成