| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 843 人关注过本帖
标题:问一下矩阵相乘用指针形式怎么做
只看楼主 加入收藏
haochen1991
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-12-11
收藏
 问题点数:0 回复次数:2 
问一下矩阵相乘用指针形式怎么做
问一下矩阵相乘用指针形式怎么做,要能适应多种尺寸的矩阵相乘,比如
A[4][6],B[6][4]。A*B
C[3][4],D[4][3],C*D。
我问过别人,说是用指针,小弟不才,望高手指教!!
小弟不甚感激!!!有源码更好!!!
搜索更多相关主题的帖子: 指针 矩阵 相乘 形式 
2005-12-11 11:19
flame
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2005-12-15
收藏
得分:0 

#include<iostream.h>
#include<math.h>
class A
{
public:
A()
{
int i,j,k;
cout<<"请输入矩阵的行数和列数: ";
cin>>go>>row;
elem=new double *[go];
for(i=0;i<go;i++)
elem[i]=new double[row];
cout<<"请输入矩阵的元素."<<endl;
for(j=0;j<go;j++)
{
cout<<"请输入第"<<j+1<<"行的"<<row<<"个数:";
for(k=0;k<row;k++)
cin>>elem[j][k];
}
}
A(int i,int j)
{
go=i;row=j;
elem=new double *[i];
for(int k=0;k<go;k++)
elem[k]=new double[j];
}
A(A &a1)
{
go=a1.go;
row=a1.row;
elem=new double *[go];
for(int i=0;i<go;i++)
elem[i]=new double[row];
int k,l;
for(k=0;k<go;k++)
for(l=0;l<row;l++)
elem[k][l]=a1.elem[k][l];
}
~A()
{
for(int i=0;i<go;i++)
{
delete elem[i];
}
delete elem;
}
void print()
{
int i,j;
for(i=0;i<go;i++)
{
for(j=0;j<row;j++)
cout<<elem[i][j]<<' ';
cout<<endl;
}
}
int getgo()
{
return go;
}
int getrow()
{
return row;
}
friend A operator *(A &a1,A &a2);
A & A::operator =(A &a1);
private:
int go,row;
double **elem;
};
A & A::operator =(A &a1)
{
if(this==&a1)
return *this;
else
{
for(int i=0;i<go;i++)
{
delete elem[i];
}
delete elem;
go=a1.go;
row=a1.row;
elem=new double *[go];
for(i=0;i<go;i++)
elem[i]=new double[row];
int t,u;
for(t=0;t<a1.go;t++)
{
for(u=0;u<a1.row;u++)
elem[t][u]=a1.elem[t][u];
}
return *this;
}
}
A operator *(A &a1,A &a2)
{
A a3(a1.getgo(),a2.getrow());
int t,u,c;
for(t=0;t<a1.go;t++)
{
for(u=0;u<a2.row;u++)
{
a3.elem[t][u]=0;
for(c=0;c<a1.row;c++)
a3.elem[t][u]+=a1.elem[t][c]*a2.elem[c][u];
}
}
return a3;
}
void main()
{
A a1,a2,a3(0,0);
if(a1.getrow()==a2.getgo())
{
cout<<"两个矩阵的积为:"<<endl;
a3=a1*a2;
a3.print();
}
else
cout<<"因为第一个矩阵的列不等于第二个矩阵的行,所以两矩阵无法相乘。"<<endl;
}


随风飘逝,叶子与我飞翔,随海飘逝,鱼儿与我追逐,随心飘逝,却只有寂寞与我相伴!
2005-12-15 18:52
炎黄の怒
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2005-12-15
收藏
得分:0 
楼上 程序写的太好

2005-12-15 20:28
快速回复:问一下矩阵相乘用指针形式怎么做
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016006 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved