矩阵乘法(C语言实现),超详细

这篇具有很好参考价值的文章主要介绍了矩阵乘法(C语言实现),超详细。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、判断是否可以做矩阵乘法

分别求得两个矩阵的行数a1,b1以及列数a2,b2。

如果a1 == b1,并且a2 == b2则进行乘法运算

2、C代码实现:

#include<stdio.h>
#include<assert.h>
int main(){
	int a[3][3] = {{1,2,3},{2,3,4},{2,5,4}};
	int b[3][3] = {{1,0,3},{0,1,4},{2,0,4}};


	int len = 0;
	int value1 = 0;
	int k = sizeof(a[0])/sizeof(int);
	//a1 = 二维数组的元素个数(行数)
	int a1 = sizeof(a)/(k*sizeof(int));
	//a2 = 二维数组中单个元素的长度(列数)
	int a2 = k;
	
	k = sizeof(b[0])/sizeof(int);
	int b1 = sizeof(b)/(k * sizeof(int));
	int b2 = k;

	if(a1 != b2 && a2 != b1) {
		printf("这两个矩阵不能做乘法运算:\n");
		return 0;
	}

	int c[10][10];
	
	//矩阵的乘法运算 
	for(int i = 0; i < a1;i++){
		for(int j = 0;j < b2 ;j++){
			for(int p = 0 ; p < a2;p++){
				//行、列 元素的乘积之和 
				value1 += a[i][p] * b[p][j];
			}
			c[i][len++] = value1;
			value1 = 0;


            //len == a1 指的是二维数组已经到达当行的最后元素
			if(len == a1){
					len =0;
				} 
		}	
	}

	//打印矩阵乘法结果
	for(int i = 0; i < k;i++){
		for(int j = 0;j < k ;j++){
			printf("%4d ",c[i][j]);
		} 
		printf("\n");
		
	}
}

3、代码结果

矩阵乘法c语言实现,c语言,矩阵,算法,线性代数文章来源地址https://www.toymoban.com/news/detail-743242.html

到了这里,关于矩阵乘法(C语言实现),超详细的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【线性代数】通过矩阵乘法得到的线性方程组和原来的线性方程组同解吗?

    如果你进行的矩阵乘法涉及一个线性方程组 Ax = b,并且你乘以一个可逆矩阵 M,且产生新的方程组 M(Ax) = Mb,那么这两个系统是等价的;它们具有相同的解集。这是因为可逆矩阵的乘法可以视为一个可逆的线性变换,不会改变方程解的存在性或唯一性。 换句话说,如果你将原

    2024年02月03日
    浏览(61)
  • 线性代数矩阵乘法中的行向量和列向量

    在矩阵中有两个概念,行向量与列向量,这是从两个不同的角度看待矩阵的组成。这篇文章将从 行向量 和 列向量 两个角度来分解 矩阵的乘法 。 假设有两个矩阵 A 和 B 一般矩阵的乘法分解 简单的理解就是A矩阵的第一行与B矩阵的第一列逐元素相乘,就是 结果矩阵 的左上角

    2024年02月11日
    浏览(47)
  • 第一百二十一天学习记录:线性代数:矩阵乘法运算(宋浩板书)

    在编程和学习数据结构的过程中,发现有些算法会用到矩阵和矩阵的乘法运算,因此先将这一个知识点学习一下。 乘法☆ 总结三条不满足

    2024年02月13日
    浏览(42)
  • 矩阵乘法(C语言实现),超详细

    分别求得两个矩阵的行数a1,b1以及列数a2,b2。 如果a1 == b1,并且a2 == b2则进行乘法运算

    2024年02月05日
    浏览(41)
  • 【JS 线性代数算法之向量与矩阵】

    线性代数是数学的一个分支,用于研究线性方程组及其解的性质、向量空间及其变换的性质等。在计算机科学领域中,线性代数常用于图形学、机器学习、计算机视觉等领域。本文将详细介绍 JS 中常用的线性代数算法,并提供代码示例。 向量是有大小和方向的量,通常用一

    2024年02月13日
    浏览(57)
  • 线性代数 --- 计算斐波那契数列第n项的快速算法(矩阵的n次幂)

    The n-th term of Fibonacci Numbers:         斐波那契数列的是一个古老而又经典的数学数列,距今已经有800多年了。关于斐波那契数列的计算方法不难,只是当我们希望快速求出其数列中的第100,乃至第1000项时,有没有又准又快的方法,一直是一个值得探讨和研究的问题。笔者

    2024年04月27日
    浏览(46)
  • pytorch入门2--数据预处理、线性代数的矩阵实现、求导

    数据预处理是指将原始数据读取进来使得能用机器学习的方法进行处理。 首先介绍csv文件: CSV 代表逗号分隔值(comma-separated values),CSV 文件就是使用逗号分隔数据的文本文件。 一个 CSV 文件包含一行或多行数据,每一行数据代表一个记录。每个记录包含一个或多个数值,

    2024年02月04日
    浏览(43)
  • C语言求任意两个矩阵相乘的算法(初学尝试矩阵乘法)

    C语言求任意两个矩阵相乘的算法(不同于大部分规格固定的矩阵乘法) 结果图如下   :                           代码如下: //----- 任意两个矩阵相乘 # include stdio.h int main (void) {     char ch;     int a, b, c, d;     printf (\\\"此算法用于任意两个矩阵相乘  n矩阵1(a行b列)

    2023年04月08日
    浏览(60)
  • 【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)

    🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长! 主成分分析(PCA,Principal Component Analysis)是一项在高维数据中,寻找最重要特征的降维技术,大大减少数据的维度,而不显著损失信息量。 本文

    2024年04月28日
    浏览(51)
  • 线性代数:线性方程求解、矩阵的逆、线性组合、线性独立

    本文参考www.deeplearningbook.org一书第二章2.3 Identity and Inverse Matrices 2.4 Linear Dependence and Span 本文围绕 线性方程求解 依次介绍矩阵的逆、线性组合、线性独立等线性代数的基础知识点。 本文主要围绕求解线性方程展开,我们先把线性方程写出来,方程如下: 其中,是已知的;,

    2024年02月08日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包