
怎样用C++实现简单的矩阵乘法
展开全部
#include <iostream>
using namespace std;
#define M 4
#define N 4
#define K 3
void main()
{
//a二维数组4行3列
int a[M][K]={{1, 1, 1},
{1, 1, 1},
{1, 1, 1},
{1, 1, 1}
};
//b二维数组3行4列
int b[K][N]={{1, 0, 0, 1},
{0, 2, 0, 0},
{0, 0, 3, 0}
};
int c[M][N]; //用一个二维数组存放矩阵的乘积结果
for(int i=0; i<M; i++) //a二维数组4行3列,a[i][x],i 运行四次
for(int j=0; j<N; j++) //b二维数组3行4列,b[x][j],j 运行四次
{ c[i][j]=0; //乘积赋出值为零
for(int x=0; x<K; x++) //k运行3次
c[i][j]=c[i][j]+a[i][x]*b[x][j]; //a[i][x]*b[x][j]最重要的中心运算,a数组的第i行与b数组的第j列相乘
}
for(i=0; i<M; i++)
{ for(int j=0; j<N; j++)
cout<<c[i][j]<<"\t"; //输出矩阵的乘积结果
cout<<endl;
}
}
理清思路,最好在纸上画画,就会更加理解其中的的运算规则,这样也就不难理解了,希望对你有帮助。
using namespace std;
#define M 4
#define N 4
#define K 3
void main()
{
//a二维数组4行3列
int a[M][K]={{1, 1, 1},
{1, 1, 1},
{1, 1, 1},
{1, 1, 1}
};
//b二维数组3行4列
int b[K][N]={{1, 0, 0, 1},
{0, 2, 0, 0},
{0, 0, 3, 0}
};
int c[M][N]; //用一个二维数组存放矩阵的乘积结果
for(int i=0; i<M; i++) //a二维数组4行3列,a[i][x],i 运行四次
for(int j=0; j<N; j++) //b二维数组3行4列,b[x][j],j 运行四次
{ c[i][j]=0; //乘积赋出值为零
for(int x=0; x<K; x++) //k运行3次
c[i][j]=c[i][j]+a[i][x]*b[x][j]; //a[i][x]*b[x][j]最重要的中心运算,a数组的第i行与b数组的第j列相乘
}
for(i=0; i<M; i++)
{ for(int j=0; j<N; j++)
cout<<c[i][j]<<"\t"; //输出矩阵的乘积结果
cout<<endl;
}
}
理清思路,最好在纸上画画,就会更加理解其中的的运算规则,这样也就不难理解了,希望对你有帮助。

2024-10-22 广告
百事牛是共享提供商,我们提供可靠有效的服务,适当合理的授权费有利于的继续更新优化。同样的事情,同样的方法,百事牛团队十年磨一剑,始终至聚焦在密码恢复领域,深耕于此,我们已研制出有别于其他公司的算法和运算模式, 百事牛的暴力模式加入了分布式点...
点击进入详情页
本回答由百事牛提供
展开全部
void matrix_mult(int a[][N],int b[][N],int[][N])
{
for(int i=0;i<=N;i++)
{
for(int j=0;j<=N;j++)
{
c[i][j]=0;
for(int k=0;k<=N;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
}
{
for(int i=0;i<=N;i++)
{
for(int j=0;j<=N;j++)
{
c[i][j]=0;
for(int k=0;k<=N;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
using
namespace
std;
#define
m
4
#define
n
4
#define
k
3
void
main()
{
//a二维数组4行3列
int
a[m][k]={{1,
1,
1},
{1,
1,
1},
{1,
1,
1},
{1,
1,
1}
};
//b二维数组3行4列
int
b[k][n]={{1,
0,
0,
1},
{0,
2,
0,
0},
{0,
0,
3,
0}
};
int
c[m][n];
//用一个二维数组存放矩阵的乘积结果
for(int
i=0;
i
评论
0
0
加载更多
using
namespace
std;
#define
m
4
#define
n
4
#define
k
3
void
main()
{
//a二维数组4行3列
int
a[m][k]={{1,
1,
1},
{1,
1,
1},
{1,
1,
1},
{1,
1,
1}
};
//b二维数组3行4列
int
b[k][n]={{1,
0,
0,
1},
{0,
2,
0,
0},
{0,
0,
3,
0}
};
int
c[m][n];
//用一个二维数组存放矩阵的乘积结果
for(int
i=0;
i
评论
0
0
加载更多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |