实矩阵相乘(C++版)
来源:互联网 发布:中兴算法工程师面试题 编辑:程序博客网 时间:2024/06/05 15:59
/************************************************************/
//日期:2010-10-22
//功能:求m×n阶矩阵A与n×k阶矩阵B的乘积矩阵C=AB。
/************************************************************/
#include<iostream>
#include<fstream>
using namespace std;
class trmul
{
private:
int m;//矩阵A和矩阵C的行数
int n;//矩阵A的列数和矩阵B的行数
int k;//矩阵B和矩阵C的列数
double **a;//存放矩阵A的元素
double **b;//存放矩阵B的元素
double **c;//存放矩阵C的元素
//double **a,**b,**c;
public:
trmul(int mm,int nn,int kk)
{
int i;
m=mm;
n=nn;
k=kk;
a=new double*[m];//动态分配内存空间
for(i=0;i<m;i++)
{
a[i]=new double[n];
}
b=new double*[n];
for(i=0;i<n;i++)
{
b[i]=new double[k];
}
c=new double*[m];
for(i=0;i<m;i++)
{
c[i]=new double[k];
}
}
~trmul()
{
int i;
for(i=0;i<m;i++)
{
delete[] a[i];
}
delete[] a;
for(i=0;i<n;i++)
{
delete[] b[i];
}
delete[] b;
for(i=0;i<m;i++)
{
delete[] c[i];
}
delete[] c;
}
void input();//从文件读入矩阵A和矩阵B
void mul();//执行C=AB
void output();//矩阵C写入文件并显示
};
void trmul::input()
{
char fname[100]="E://程序设计空间//TEST//t27//fin.txt";
int i,j;
cout<<"/ninput file name:"<<fname<<endl;
// cin>>fname;
ifstream fin(fname);
if(!fin)
{
cout<<"can't open this file:"<<fname<<endl;
exit(1);
}
else
{
cout<<"matrix 1 is:"<<endl;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
fin>>a[i][j];
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"matrix 2 is:"<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<k;j++)
{
fin>>b[i][j];
cout<<b[i][j]<<" ";
}
cout<<endl;
}
}
fin.close();
}
void trmul::mul()
{
int i,j,t;
for(i=0;i<m;i++){
for(j=0;j<k;j++){
c[i][j]=0.0;
for(t=0;t<n;t++){
c[i][j]+=a[i][t]+b[t][j];
}
}
}
}
void trmul::output()
{
int i,j;
char fname[100]="E://程序设计空间//TEST//t27//fout.txt";
cout<<" output file name:"<<fname<<endl;
ofstream fout(fname);
if(!fout)
{
cout<<"can't open this file:"<<fname<<endl;
}
else
{
for(i=0;i<m;i++){
for(j=0;j<k;j++){
fout<<" "<<c[i][j];
cout<<" "<<c[i][j];
}
fout<<endl;
cout<<endl;
}
}
fout.close();
}
int main()
{
trmul test(4,5,3);
test.input();
test.mul();
test.output();
getchar();
return 0;
}
- 矩阵相乘(C案例)
- 实矩阵相乘(C++版)
- 零基础学c++(矩阵相乘)
- C++:矩阵相乘
- C编程:矩阵相乘
- c语言矩阵相乘
- C语言矩阵相乘
- 矩阵相乘C语言
- C语言实现矩阵相乘
- c 动态规划 矩阵相乘
- C语言实现矩阵相乘
- CUDA C 任意矩阵相乘
- C语言实现矩阵相乘
- 矩阵相乘 C语言实现
- 实矩阵相乘函数
- 矩阵相乘(uva348)
- 稀疏矩阵利用三元组相乘(c语言)
- 数据结构--稀疏矩阵(相乘)
- Asp.Net构架(Http请求处理流程) - Part.1
- Cache技术――OSCache(一) - [缓存技术]
- LR监控windows、linux、UNIX时常见问题及操作步骤
- Cache技术――OSCache(二) - [缓存技术]
- MSN Live Messenger 乱码解决方法
- 实矩阵相乘(C++版)
- uncaught exception: Access to restricted URI denied (NS_ERROR_DOM_BAD_URI)
- Apache自带网站压力测试工具ab
- Lesson 01 A private conversation 私人谈话
- 集合类碎碎念
- css的position-relative兼容问题与解决办法
- dynamic初步
- Jbpm 4 撤回 、强制完成
- C#中IList与List区别