永发信息网

用C++,如何导入一个A(2550,4)的矩阵啊? 求助。。。

答案:3  悬赏:50  手机版
解决时间 2021-05-08 19:37
rt
最佳答案
你是从文件读取吗?
全部回答
#include "iostream.h"
class CMatrix
{
int m_Rows;
int m_Cols;
float *m_P;
public:
CMatrix(int i=0,int j=0);
~CMatrix();
void Init();
void Show();
CMatrix operator+(CMatrix &rc);
CMatrix operator*(CMatrix &rc);
CMatrix operator-(CMatrix &rc);
CMatrix & operator=(CMatrix &rc);
CMatrix (CMatrix &rc);
};
CMatrix::CMatrix(int i,int j)
{
int m,n;
m_P=0;
if(i<0||j<0)
return;
m_Rows=i;
m_Cols=j;
m_P=new float[m_Rows*m_Cols];
for(m=0;m<i;m++)
for(n=0;n<j;n++)
m_P[m*m_Cols+n]=0;
}
void CMatrix::Init()
{
int i,j;
for(i=0;i<m_Rows;i++)
for(j=0;j<m_Cols;j++)
{
cout<<"请输入矩阵元素["<<i<<"]["<<j<<"]:";
cin>>m_P[i*m_Cols+j];
}
}
void CMatrix::Show()
{
int i,j;
for(i=0;i<m_Rows;i++)
{
for(j=0;j<m_Cols;j++)
cout<<" "<<m_P[i*m_Cols+j];
cout<<endl;
}
}
CMatrix CMatrix::operator*(CMatrix &rc)
{
int i,j,k;
if(m_Cols!=rc.m_Rows)
return CMatrix();
CMatrix r(m_Rows,rc.m_Cols);
for(i=0;i<m_Rows;i++)
for(j=0;j<rc.m_Cols;j++)
for(k=0;k<m_Cols;k++)
r.m_P[i*rc.m_Cols+j]+=m_P[i*m_Cols+k]*rc.m_P[k*rc.m_Cols+j];
return r;
}
CMatrix CMatrix::operator+(CMatrix &rc)
{
if(m_Rows!=rc.m_Rows||m_Cols!=rc.m_Cols)
return CMatrix();
CMatrix r(m_Rows,m_Cols);
for(int i=0;i<m_Rows;i++)
for(int j=0;j<rc.m_Cols;j++)
r.m_P[i*m_Cols+j]=m_P[i*m_Cols+j]+rc.m_P[i*m_Cols+j];
return r;
}
CMatrix CMatrix::operator-(CMatrix &rc)
{
if(m_Rows!=rc.m_Rows||m_Cols!=rc.m_Cols)
return CMatrix();
CMatrix r(m_Rows,m_Cols);
for(int i=0;i<m_Rows;i++)
for(int j=0;j<rc.m_Cols;j++)
r.m_P[i*m_Cols+j]=m_P[i*m_Cols+j]-rc.m_P[i*m_Cols+j];
return r;
}

CMatrix & CMatrix::operator=(CMatrix &rc)
{
if(m_P!=0)
delete m_P;
m_Rows=rc.m_Rows;
m_Cols=rc.m_Cols;
m_P=new float[m_Rows*m_Cols];
for(int i=0;i<m_Rows*m_Cols;i++)
m_P[i]=rc.m_P[i];
return *this;
}
CMatrix::CMatrix (CMatrix &rc)
{
int i,j;
m_Rows=rc.m_Rows;
m_Cols=rc.m_Cols;
m_P=new float[m_Rows*m_Cols];
for(i=0;i<m_Rows;i++)
for(j=0;j<m_Cols;j++)
m_P[i*m_Cols+j]=rc.m_P[i*m_Cols+j];
}
CMatrix::~CMatrix ()
{
if(m_P!=0)
delete []m_P;
}
int main(int argc, char* argv[])
{
cout<<"第一个矩阵"<<endl;
CMatrix c(2,2);
c.Init();
cout<<"第二个矩阵"<<endl;
CMatrix b(2,3);
b.Init();
cout<<"第三个矩阵"<<endl;
CMatrix d(2,3);
d.Init();

cout<<"第一个矩阵是:"<<endl;
c.Show();
cout<<"第二个矩阵是:"<<endl;
b.Show();
cout<<"第三个矩阵是:"<<endl;
d.Show();
CMatrix r;
r=c*b;
cout<<"第一和第二个矩阵的相乘后的矩阵是:"<<endl;
r.Show();
CMatrix k;
k=b+d;
cout<<"第二和第三个矩阵的相加后的矩阵是:"<<endl;
k.Show();
CMatrix p;
p=b-d;
cout<<"第二和第三个矩阵的相减后的矩阵是:"<<endl;
p.Show();
return 0;
}
int A[2550][4]
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
三门峡职业技术学院和周口职业技术学院那个好
关于助人的名言警句,描写善意助人的诗句
晕,实在没问题问,应付任务吧
又好听的歌吗?我比较喜欢抒情的
唐宋有哪八大家?
如何让电脑只登陆两个QQ,别的QQ都登陆不上去
DNF8.15停机到几点??
装错系统盘了!!!
有什么好看的喜剧片跟爱情片啊 一定要很好看
回味香大盘鸡拌面王地址在什么地方,想过去办
思想先行前一句,生态文明的建设是观念先行还
犬夜叉完结篇第八话的插曲叫什么
防闪镜有用吗?
内蒙考生,今天没报上志愿,请问,可以补报么
这是什么游戏了00
推荐资讯
伤害咯一个爱莪的人。当他站在我面前我该怎么
哪里能下载到最新的免费金山词霸?
王彬超市地址有知道的么?有点事想过去
QQ飞车上怎么得永久好A车
实况足球8国际版足球狂欢V2.0 最新补丁
谁有炫舞1.8.0版本的全P的挂?
支付保怎么开通
正宗城固李记热米皮地址在什么地方,想过去办
男人做面膜句子,睡前敷面膜会给皮肤带来哪些
2010年9月26日托福机经预测。。急啊
梦幻西游4次四门最少给几个果子?
什么情况需要做动平衡,怎样能使物体达到平衡?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?