矩阵在线计算机,矩阵计算器
这是小甲鱼第25课的作业,要求输入两个矩阵,计算矩阵相乘的运算结果,并以合适的格式打印出来
矩阵相乘计算器
难点:
矩阵相乘的循环嵌套
如何输出横向的打印结果→借鉴之前的logo打印方式,横向组合,按行打印
小技巧
这里我将每个矩阵的打印代码写成了函数,与答案相比更加简洁。
// 输入维数 输入矩阵 矩阵计算函数 打印函数
// 矩阵1:M×P
// 矩阵2:P×N
#include
void printMat(int *p, int mat_rows, int mat_cols, int n)
{
int ii = 0;
if (n < mat_rows)
{
printf("|"); //one space
for (ii = 0; ii < mat_cols; ii++)
{
printf(" %2d ", *(p+ii));
}
printf("|");
}
else
{
printf(" "); //one space
for (ii = 0; ii < mat_cols; ii++)
{
printf(" ");
}
printf(" ");
}
}
int main(void)
{
// 确定矩阵维数
int M, P, N;
printf("请输入矩阵1的尺寸(M*P): ");
scanf("%d*%d", &M, &P);
printf("请输入矩阵2的尺寸(P*N): ");
scanf("%d*%d", &P, &N);
// 定义空矩阵
int mat_a[M][P];
int mat_b[P][N];
int mat_c[M][N]; // 初始化 可变数组需要手动初始化
int i = 0, j = 0;
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
mat_c[i][j] = 0;
}
}
// 录入矩阵数据 使用i,j分层循环
printf("请输入矩阵1: \n");
for (i = 0; i < M; i++)
{
for (j = 0; j < P; j++)
{
scanf("%d", &mat_a[i][j]);
}
}
printf("请输入矩阵2: \n");
for (i = 0; i < P; i++)
{
for (j = 0; j < N; j++)
{
scanf("%d", &mat_b[i][j]);
}
}
// 分析矩阵计算的循环嵌套
// 矩阵C有M*N个元素,最两分别为M和N
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
int sum = 0;
// 每个元素需要求和得到结果,又是一层循环
for (int k = 0; k < P; k++)
{
sum += mat_a[i][k] * mat_b[k][j];
}
mat_c[i][j] = sum;
}
}
// 按行打印结果 按行组装
// M和P指定行数,取两者的较大值
int row = M > P ? M : P;
for (int n = 0; n < row; n++)
{
// mat_a
printMat(&mat_a[n][0], M, P, n);
// print *
if (n == row / 2)
printf(" * ");
else
printf(" ");
// mat_b
printMat(&mat_b[n][0], P, N, n);
// print =
if (n == row / 2)
printf(" = ");
else
printf(" ");
// mat_c
printMat(&mat_c[n][0], M, N, n);
printf("\n");
}
return 0;
}
矩阵在线计算机,矩阵计算器相关推荐
- proteus矩阵按键计算机,矩阵键盘检测Proteus仿真电路图这里将16个按键按照4*4排列...
该按钮可以说是51单片机项目开发的重要组成部分,是51单片机IO端口输入的重要方式.我们可以通过按下按钮来控制微控制器执行相应的程序,以获得所需的效果. 51单片机的键输入主要有两种.一种是独立密钥. ...
- 结构力学计算机矩阵位移法,结构力学-矩阵位移法.ppt
<结构力学-矩阵位移法.ppt>由会员分享,可在线阅读,更多相关<结构力学-矩阵位移法.ppt(42页珍藏版)>请在装配图网上搜索. 1.结构力学,2 / 42,第七节 平面刚 ...
- 高中计算机矩阵算法ppt,矩阵及其基本算法.ppt
<矩阵及其基本算法.ppt>由会员分享,可在线阅读,更多相关<矩阵及其基本算法.ppt(32页珍藏版)>请在人人文库网上搜索. 1.矩阵及其基本算法,计13 刘汝佳,矩阵及其基 ...
- 【JAVA】小米集团-2021校招-算法方向在线考试(矩阵相乘+盒子包裹问题)
前言 楼主参加笔试之前去字节面试了,又是被虐的一次,所以笔试迟到40分钟,而且被字节虐的脑子转不动了,今天笔试很简单,但是我做得不是很理想,希望大家多多说一下自己的思路.祝大家都有心仪的offer. ...
- 计算机视觉三维重建的几何基础:坐标系与关键矩阵(基础矩阵、本质矩阵、单应矩阵)...
作者丨李迎松@知乎 来源丨https://zhuanlan.zhihu.com/p/159194599 编辑丨3D视觉工坊 你站在桥上看风景, 看风景人在楼上看你. 明月装饰了你的窗子, 你装饰了别人 ...
- 什么是单应矩阵和本质矩阵
知乎上面的大牛还是很多,直接搜Homography或者单应矩阵就能得到很多大神的回答,可能回答中的一句话或者一个链接就够自己学习很久. 其实在之前研究双目视觉的时候就接触了对极几何,通过视觉就可以得到 ...
- 模型矩阵、视图矩阵、投影矩阵
模型视图投影矩阵的作用,就是将顶点从局部坐标系转化到规范立方体(Canonical View Volnme)中.总而言之,模型视图投影矩阵=投影矩阵×视图矩阵×模型矩阵,模型矩阵将顶点从局部坐标系转化 ...
- WebGL矩阵变换总结(模型矩阵,视图矩阵,投影矩阵)
矩阵变换总结(模型矩阵,视图矩阵,投影矩阵) 最近在开发项目的时候,常常用到Three.js,用起来很方便.可是,当引擎迭代升级的时候,以前的很多的技巧,并不一定使用最新的引擎.我认为应当对底层的原生 ...
- strassen矩阵乘法 java_矩阵乘法Strassen算法
矩阵乘法是种极其耗时的运算.以 为例,其中 和 都是 矩阵.根据矩阵乘法的定义, 中的每个元素需要按照如下方式计算 式(4.8)包含一个 次的循环,因此计算 的时间复杂度为 .而 共有 个元素,因此总 ...
最新文章
- 为什么不建议直接使用 Async 注解?
- mysql常用到的几个命令
- Mac下Git与Github的简单使用
- 在Linux下编译安装Apache2(2)
- JNI的一个简单实例
- maven 构建增量包_使用Maven进行增量构建
- 卡夫卡如何分区_通过分区在卡夫卡实现订单担保人
- 域名带后缀_[Python 爬虫]获取顶级域名及对应的 WHOIS Server 及 whoisservers.txt 下载...
- 什么是MPLS?多协议标签交换
- 极客大学架构师训练营 秒杀 搜索引擎 爬虫 Lucene Elastic Search 第18课 听课总结
- SSH工具连接谷歌云VPS实例
- lerna 项目中集成 babel lint-staged husky eslint
- 阿里巴巴食堂:看菜名我跪了~程序员:给我来个“油炸产品经理”
- Linux路由器的配置
- Node.js 下载与安装教程
- AES实现加解密-Java
- 大疆Tello开发教程
- excel 6位数字 转日期列
- ssh authentication魔鬼细节--.ssh文件夹权限
- Fiddler配置及使用教程
热门文章
- 使用面阵相机进行传送带视频流的拼接
- 中国电子束抗蚀剂市场深度研究分析报告
- c语言编程等腰三角形,用c语言编辑一个等腰三角形的讲解过程 一个等腰三角形怎么平均分成三个面积相等的三角形?...
- JAVA-Servlet项目接入支付宝网站支付
- r语言mfrow全程_R语言(绘图入门)
- 基于EasyNVR实现RTSP_Onvif监控摄像头Web无插件化直播监控
- 微信公众号基础功能搭建
- 什么是受管制的代码?什么是托管代码?
- Allegro中 设置指定的网络线宽的方法
- 深度技术GhostXP专业版V9.0之初体验