#include<stdio.h>
#include<math.h>void jiafa()
{int m,n;float a[20][20],b[20][20],c[20][20];int i,j;printf("请输入矩阵行数:");scanf("%d",&m);printf("请输入矩阵列数:");scanf("%d",&n);printf("请输入第一个矩阵:");for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%f",&a[i][j]);printf("请输入第二个矩阵:");for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%f",&b[i][j]);printf("矩阵相加的结果为:");for(i=0;i<m;i++){ for(j=0;j<n;j++){c[i][j]=a[i][j]+b[i][j];printf("%4f ",c[i][j]);}printf("\n");}
}void jianfa()
{int m,n;float a[20][20],b[20][20],c[20][20];int i,j;printf("请输入矩阵行数:");scanf("%d",&m);printf("请输入矩阵列数:");scanf("%d",&n);printf("请输入第一个矩阵:");for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%f",&a[i][j]);printf("请输入第二个矩阵:");for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%f",&b[i][j]);printf("矩阵相减的结果为:");for(i=0;i<m;i++){ for(j=0;j<n;j++){c[i][j]=a[i][j]-b[i][j];printf("%4f ",c[i][j]);}printf("\n");}
}void chengfa()
{int m,n;float s;float a[20][20],b[20][20],c[20][20];int i,j,k;printf("请输入矩阵行数:");scanf("%d",&m);printf("请输入矩阵列数:");scanf("%d",&n);printf("请输入第一个矩阵:");for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%f",&a[i][j]);printf("请输入第二个矩阵:");for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%4f",&b[i][j]);for(i=0;i<m;i++){for(j=0;j<m;j++){s=0;for(k=0;k<n;k++){s=s+a[i][k]*b[k][j];c[i][j]=s;}}}for(i=0;i<m;i++){for(j=0;j<m;j++){printf("%4f ",c[i][j]);}printf("\n");}
}void zhuanzhi()
{int m,n;float a[20][20],b[20][20];int i,j;printf("请输入矩阵行数:");scanf("%d",&m);printf("请输入矩阵列数:");scanf("%d",&n);printf("请输入一个矩阵:");for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%f",&a[i][j]);for(i=0;i<m;i++){for(j=0;j<n;j++){b[i][j]=a[j][i];printf("%4f ",b[i][j]);}printf("\n");}
}void qiuni()
{int N;printf("输入矩阵的阶数N:\n");scanf("%d",&N);float a[10][10],b[10][20],c[10][10],t;int i,j,m;printf("请输入行列式不为0的矩阵A(%d阶):\n",N); for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%f",&a[i][j]);for(i=0;i<N;i++)for(j=0;j<N;j++)b[i][j]=a[i][j];for(i=0;i<N;i++)for(j=N;j<2*N;j++)b[i][j]=0;for(i=0;i<N;i++)b[i][N+i]=1;for(m=0;m<N;m++) {
t=b[m][m]; i=m;
while(b[m][m]==0){
b[m][m]=b[i+1][m];i++;}if(i>m){b[i][m]=t; for(j=0;j<m;j++)
{t=b[m][j];b[m][j]=b[i][j];b[i][j]=t;}for(j=m+1;j<2*N;j++)
{t=b[m][j];b[m][j]=b[i][j];b[i][j]=t;}}for(i=m+1;i<N;i++)for(j=2*N-1;j>=m;j--)
b[i][j]-=b[i][m]*b[m][j]/b[m][m]; for(j=2*N-1;j>=m;j--)
b[m][j]/=b[m][m]; }printf("第一步变换后得到的增广矩阵为:\n");for(i=0;i<N;i++){for(j=0;j<2*N;j++)printf("%3.5f ",b[i][j]);printf("\n"); }m=N-1;while(m>0){for(i=0;i<m;i++)for(j=2*N-1;j>=m;j--)
b[i][j]-=b[i][m]*b[m][j];m--;}printf("最后得到的增广矩阵为:\n");for(i=0;i<N;i++){for(j=0;j<2*N;j++)printf("%3.5f ",b[i][j]);printf("\n"); }for(i=0;i<N;i++)
for(j=0;j<N;j++)c[i][j]=b[i][N+j];printf("故逆矩阵为:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%3.5f ",c[i][j]);printf("\n"); }} int main()
{int w;printf("1矩阵加法\n");printf("2矩阵减法\n");printf("3矩阵乘法\n");printf("4矩阵转置\n");printf("5矩阵求逆\n");printf("\n");printf("请选择要进行的运算:");scanf("%d",&w);switch(w){case 1:jiafa();break;case 2:jianfa();break;case 3:chengfa();break;case 4:zhuanzhi();break;case 5:qiuni();break;}return 0;
}

实现两个矩阵的加减乘除和转置。相关推荐

  1. python中两个矩阵之间的点乘_Python基础--数据分析库--Numpy

    一.基础概念 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. NumPy 通常与 Sci ...

  2. python矩阵的平方_NumPy之计算两个矩阵的成对平方欧氏距离

    问题描述 设 (; 表示纵向连接) 和 , 计算矩阵 中每一个行向量和矩阵 中每一个行向量的平方欧氏距离 (pairwise squared Euclidean distance), 即计算: (这是 ...

  3. 计算两个矩阵的行向量之间的欧式距离

    1 问题描述 矩阵P的大小为[m, d]   用行向量表示为P1, P2,...,Pm 矩阵C的大小为[n, d]    用行向量表示为C1, C2,...,Cn 求矩阵P的每个行向量与矩阵C的每个行 ...

  4. 二维数组c语言矩阵加法,C 语言实例 – 两个矩阵相加 - C 语言基础教程

    C 语言实例 使用多维数组将两个矩阵相加. #include int main(){ int r, c, a[100][100], b[100][100], sum[100][100], i, j; ...

  5. python如何对两个矩阵进行拼接_Python合并两个numpy矩阵

    numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 实际的应用中,矩阵的合并是一个经常发生的操作,如何利 ...

  6. 用两个矩阵的点积计算神经网络的迭代次数 2-8

    每个神经网络对应每个收敛标准δ都有一个特征的迭代次数n,因此可以用迭代次数曲线n(δ)来评价网络性能. 在<神经网络的迭代次数是一个线性的变量吗?>中得到表达式 一个二分类网络分类两个对象 ...

  7. 使用指针数组实现这两个矩阵的相乘

    /********************************************************************* 有一2*3的整数矩阵和一3*2的整数矩阵,请使用指针数组实 ...

  8. Java黑皮书课后题第8章:**8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法。编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积

    **8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法.编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 **8.6( ...

  9. Java黑皮书课后题第8章:*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和

    *8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8.5(代数:两 ...

最新文章

  1. 生物什么时候学公式计算机,高考生物重要规律性关系及公式精华归纳,转走吧!...
  2. 你在用什么思想编码:事务脚本 OR 面向对象?
  3. ZooKeeper:win7上安装单机及伪分布式安装
  4. 脱式计算机在线使用,脱式计算,
  5. redis和memcache的对比
  6. 微软使用 Fluent Design 对应用图标进行统一调整,并更新 Windows 10 Logo
  7. 目录代码php_php获取某个目录大小的代码
  8. Mysql 中将blob类型转换成varchar类型
  9. 【数据技术】利用Python获取高德地图POI数据——以上海瑞幸门店为例
  10. 解密SuperWebview的一种另类方法
  11. 三位一体的漏洞分析方法-web应用安全测试方法
  12. 深入分析Zookeeper的Leader选举原理
  13. 看病(版权所有翻版必究)
  14. android 自定义控件之AutoCompleteTextView邮箱后缀自动补全
  15. 【转】常用单位换算表
  16. Vue给每个v-for的元素设置不同的点击事件
  17. Apache服务器访问过慢分析及解决
  18. 计算机钥匙英语,计算机加锁--把U盘变成打开电脑的钥匙 - 信息科学 - 小木虫 - 学术 科研 互动社区...
  19. matlab化石墨烯,基于MATLAB的石墨烯场效应晶体管电学特性研究
  20. VBoxManager命令解析

热门文章

  1. mysql的decimal类型与Java的BigDecimal
  2. Django开发个人博客网站——3、使用pycharm创建博客项目
  3. 中国纺织服装企业有哪些 纺织服装企业查询
  4. CoNR让二次元动起来
  5. php7配置mysqli和使用mysqli连接mysql
  6. 报表中的多维数据分析,并没有你想象的那么难!
  7. 给正在注册或即将注册个体工商户营业执照的你
  8. 前端互联网金融项目总结
  9. 完美解决windows10系统磁盘占用100%并出现卡顿、假死无反应
  10. 一个小小的猜数游戏(挺无聊的,可以运行试试)