两个矩阵相乘算法

两个矩阵相乘算法本来是处理两个矩阵的连乘求如何加括号使得中间的运算次数最少的问题,但是突然想到实现一下如何求连个矩阵连乘的算法,就... 两个矩阵相乘算法本来是处理两个矩阵的连乘求如何加括号使得中间的运算次数最少的问题,但是突然想到实现一下如何求连个矩阵连乘的算法,就 展开
 我来答
来自莫干山笑逐颜开的垂枝梅
2020-09-30 · TA获得超过2270个赞
知道答主
回答量:5
采纳率:0%
帮助的人:1309
展开全部

矩阵相乘需要前面矩阵的行数与后面矩阵的列数相同方可相乘。

第一步先将前面矩阵的每一行分别与后面矩阵的列相乘作为结果矩阵的行列。

第二步算出结果即可。

扩展资料:

矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义 。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。

1、当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。

2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。

3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

参考资料:百度百科-矩阵相乘

环球青藤
2020-09-29 · 专注大学生职业技能培训在线教育品牌
环球青藤
环球青藤开设了就业、技能培训、职业资格考试、学历提升、外语培训、留学和兴趣类专业课程、为大学生提供考试/就业双重服务。
向TA提问
展开全部
两个矩阵相乘算法
本来是处理两个矩阵的连乘求如何加括号使得中间的运算次数最少的问题,但是突然想到实现一下如何求连个矩阵连乘的算法,就实现了一下,挺简单的:

注意程序围绕的思想:
1.两个矩阵相乘,前一个矩阵的列等于一个矩阵的行
2.拿前一个矩阵的每一行,依次的乘以后一个矩阵的每一列
[cpp] view plain copy

#include<iostream>
//注意矩阵连乘需要满足的是:
//前一个矩阵的列等于后一个矩阵的行
using namespace std;
int main(){
int a[3][1] = {
{1},
{2},
{3}
};
int b[1][3] = {{1,2,3}};
int c[3][3];
int temp;
for (int i=0; i<3; i++){ //拿出数组a的每一行
for (int z=0; z<3; z++){ //分别和数组b的每一列进行相乘
int sum = 0; //因为每次乘以数组a的每一列都会产生数组c中的一个元素,所以sum要放在这里
for(int j=0; j<1; j++){
sum = a[i][j] * b[j][z];
}
c[i][z] = sum;
}
}

for (int i=0; i<3; i++){
for (int j=0; j<3; j++)
cout << c[i][j];
cout << endl;
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式