实现两个矩阵的加减乘除和转置。
#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;
}
实现两个矩阵的加减乘除和转置。相关推荐
- python中两个矩阵之间的点乘_Python基础--数据分析库--Numpy
一.基础概念 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. NumPy 通常与 Sci ...
- python矩阵的平方_NumPy之计算两个矩阵的成对平方欧氏距离
问题描述 设 (; 表示纵向连接) 和 , 计算矩阵 中每一个行向量和矩阵 中每一个行向量的平方欧氏距离 (pairwise squared Euclidean distance), 即计算: (这是 ...
- 计算两个矩阵的行向量之间的欧式距离
1 问题描述 矩阵P的大小为[m, d] 用行向量表示为P1, P2,...,Pm 矩阵C的大小为[n, d] 用行向量表示为C1, C2,...,Cn 求矩阵P的每个行向量与矩阵C的每个行 ...
- 二维数组c语言矩阵加法,C 语言实例 – 两个矩阵相加 - C 语言基础教程
C 语言实例 使用多维数组将两个矩阵相加. #include int main(){ int r, c, a[100][100], b[100][100], sum[100][100], i, j; ...
- python如何对两个矩阵进行拼接_Python合并两个numpy矩阵
numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 实际的应用中,矩阵的合并是一个经常发生的操作,如何利 ...
- 用两个矩阵的点积计算神经网络的迭代次数 2-8
每个神经网络对应每个收敛标准δ都有一个特征的迭代次数n,因此可以用迭代次数曲线n(δ)来评价网络性能. 在<神经网络的迭代次数是一个线性的变量吗?>中得到表达式 一个二分类网络分类两个对象 ...
- 使用指针数组实现这两个矩阵的相乘
/********************************************************************* 有一2*3的整数矩阵和一3*2的整数矩阵,请使用指针数组实 ...
- Java黑皮书课后题第8章:**8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法。编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积
**8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法.编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 **8.6( ...
- Java黑皮书课后题第8章:*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和
*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8.5(代数:两 ...
最新文章
- 生物什么时候学公式计算机,高考生物重要规律性关系及公式精华归纳,转走吧!...
- 你在用什么思想编码:事务脚本 OR 面向对象?
- ZooKeeper:win7上安装单机及伪分布式安装
- 脱式计算机在线使用,脱式计算,
- redis和memcache的对比
- 微软使用 Fluent Design 对应用图标进行统一调整,并更新 Windows 10 Logo
- 目录代码php_php获取某个目录大小的代码
- Mysql 中将blob类型转换成varchar类型
- 【数据技术】利用Python获取高德地图POI数据——以上海瑞幸门店为例
- 解密SuperWebview的一种另类方法
- 三位一体的漏洞分析方法-web应用安全测试方法
- 深入分析Zookeeper的Leader选举原理
- 看病(版权所有翻版必究)
- android 自定义控件之AutoCompleteTextView邮箱后缀自动补全
- 【转】常用单位换算表
- Vue给每个v-for的元素设置不同的点击事件
- Apache服务器访问过慢分析及解决
- 计算机钥匙英语,计算机加锁--把U盘变成打开电脑的钥匙 - 信息科学 - 小木虫 - 学术 科研 互动社区...
- matlab化石墨烯,基于MATLAB的石墨烯场效应晶体管电学特性研究
- VBoxManager命令解析