当前位置: 首页 > 编程笔记 >

C语言实现两个矩阵相乘

孔驰
2023-03-14
本文向大家介绍C语言实现两个矩阵相乘,包括了C语言实现两个矩阵相乘的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了C语言实现两个矩阵相乘的具体代码,供大家参考,具体内容如下

程序功能:实现两个矩阵相乘的C语言程序,并将其输出

代码如下:

#include "stdafx.h"
#include "windows.h"
void Multi(int * left, int * right, int * result, int f1, int f2, int s1, int s2);

int main()
{
 int i, j;
 int a[4][3] = 
 { {1,2,3},
  {4,5,6},
  {7,8,9},
  {1,2,3}};
 int b[3][3] =
 { { 1,2,3 },
 { 4,5,6 },
 {7,8,9} };
 //c矩阵为a矩阵与b矩阵的乘积
 int c[4][3];
 //计算两个矩阵相乘
 Multi(a[0], b[0],c[0], 4, 3, 3, 3);
 //输出c矩阵
 for (i = 0; i < 4; i++)
 {
  for(j=0;j<3;j++)
   printf("%4d ", c[i][j]);
  printf("\n");
 }
 system("pause");
 return 0;
}

//矩阵相乘算法,最后四个参数是两个相乘的矩阵的行数和列数
void Multi(int * left, int * right, int * result,int f1, int f2, int s1, int s2)
{
 //int a[f1][f2], b[s1][s2], c[f1][s2];
 //a[i][j]==a[i*f2+j]
 //由矩阵相乘,要求f2=s1,以下用f2
 for (int i = 0; i < f1; i++) //i表示第i行
 {
  for (int j = 0; j < s2; j++) //j表示第j列
  {
   result[i*f2 + j] = 0;  //在这里 result[i][j] = result[i*f2+j];
   for(int p=0;p<f2;p++)
   {
    result[i*f2 + j] +=left[i*f2+p]*right[p*f2+j];
   }
  }
 }
}

运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍C语言实现稀疏矩阵,包括了C语言实现稀疏矩阵的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现稀疏矩阵的具体代码,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 产出: 在文件include from/usr/include/C++/4.8/IOStream:39:0、from proy3.cpp:2:/usr/include/C++/4.8/ostream:548:5:注意:模板std::basic_ostream&std::operator<<(std::basic_ostream&,const无符号char*)操作符<<(Basic_ostream&

  • 主要内容:语法,例子,访问矩阵的元素,矩阵计算矩阵是其中元素以二维矩形布局排列的R对象。它们包含相同原子类型的元素。 虽然我们可以创建一个仅包含字符或仅包含逻辑值的矩阵,但它们没有太多用处。 我们使用包含数学元素的矩阵来在数学计算中使用。 矩阵可通过使用函数来创建。 语法 在R中创建矩阵的基本语法是 - 以下是使用的参数的描述 - data - 是将要转为矩阵元素的输入向量。 nrow - 是要创建的行数。 ncol - 是要创建的列数。 b

  • 本文向大家介绍C语言实现矩阵翻转(上下翻转、左右翻转),包括了C语言实现矩阵翻转(上下翻转、左右翻转)的使用技巧和注意事项,需要的朋友参考一下 C语言实现矩阵翻转 上下翻转与左右翻转 实例代码:  动态分配内存 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 本文向大家介绍C语言 经典题目螺旋矩阵 实例详解,包括了C语言 经典题目螺旋矩阵 实例详解的使用技巧和注意事项,需要的朋友参考一下 C语言 经典题目螺旋矩阵 思路是这样的,刚开始很容易想到顺时针赋值,如下图为5阶:分为四个方向顺时针赋值。每个方向负责相同数量的元素。 但这样,后来发现当N为基数时,最中心一个数不能被赋值。 所以改为还是顺时针赋值,只是->方向多负责一个元素,右| 方向少负责一个元素

  • 本文向大家介绍C语言科学计算入门之矩阵乘法的相关计算,包括了C语言科学计算入门之矩阵乘法的相关计算的使用技巧和注意事项,需要的朋友参考一下 1.矩阵相乘 矩阵相乘应满足的条件: (1) 矩阵A的列数必须等于矩阵B的行数,矩阵A与矩阵B才能相乘; (2) 矩阵C的行数等于矩阵A的行数,矩阵C的列数等于矩阵B的列数; (3) 矩阵C中第i行第j列的元素等于矩阵A的第i行元素与矩阵B的第j列元素对应乘积