《C语言》矩阵问题

article/2025/9/23 4:52:38

一.矩阵乘法

1.定理:

两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义。如Am×n矩阵和Bn×p矩阵,它们的乘积C是一个m×p矩阵。

   

 例如:

 2.思路

1.  i,j分别代表行和列,所以应该定义一个二维矩阵,其行和列都为2.

2.分析一下上面这个公式设a*b=C,C为矩阵乘法后的结果。

(1)C的第一行

  C的第一行第一列等于a的第一行的每一个值乘b的第一列的每一个值

  C的第一行第二列等于a的第一行的每一个值乘b的第二列的每一个值

(2)C的第二行

  C的第二行第一列等于a的第二行的每一个值乘b的第一列的每一个值

  C的第二行第二列等于a的第二行的每一个值乘b的第二列的每一个值

 3.代码实现

#include<stdio.h>
main()
{int n = 0;int ret1[2][3] = { {1,0,2}, {-1,3,1} };int ret2[3][2] = { {3,1},{2,1},{1,0} };int ret3[2][2];for (int i = 0; i < 2; i++){for (int j = 0; j < 2; j++){ret3[i][j] = 0;                 //每次初始化为0for (int k = 0; k < 3; k++){ret3[i][j] += ret1[i][k] * ret2[k][j];}}}for (int i = 0; i < 2; i++)             //输出{for (int j = 0; j < 2; j++){printf("%d\t", ret3[i][j]);}printf("\n");}
}


二.转置矩阵

1.定义:把m*n矩阵

行和列互换之后得到的矩阵

2.题目

 给你一个二维整数数组 matrix, 返回 matrix转置矩阵

矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。

 <1>思路: 

      直接令行索引和列索引交换即可

 <2>代码

#include<stdio.h>
main()
{int ret[3][3] = { {2,4,-1},{-10,5,11},{18,-7,6} };//定义一个二维矩阵int newret[3][3];                                //新定义一个矩阵for (int i = 0; i < 3; i++)                      //分别遍历行和列{for (int j = 0; j < 3; j++){newret[i][j] = ret[j][i];               //列索引行索引交换printf("%d\t", newret[i][j]);}printf("\n");}}

 <3>结果


三.矩阵旋转

  顺时针旋转90°

1.思路 

4的坐标的变化:(0,1)--->(1,1)

其他数都是一样的规律就不一一列举出来

对于矩阵中第 i 行的第 j个元素,在旋转后,它出现在倒数第 i 列的第 j 个位置。

翻译成代码

对于矩阵的元素matrix[i][j]  在旋转后变成matrix2[j][n-i-1];在下列代码中n为3,

2.代码

<1>根据上述规则,进行矩阵的旋转把matrix的元素放入到matrix2。

<2>输出旋转后的矩阵

{int matrix[3][3] = { 2,4,-1,-10,5,11,18,-7,6 };int matrix2[3][3];for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){matrix2[j][3-i-1] = matrix[i][j];      //根据规则旋转矩阵}}for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){printf("%d\t", matrix2[i][j]);         //输出旋转后的矩阵}printf("\n");}
}

 

 逆时针旋转90°(等同于逆时针旋转270°)

1.思路 

4:(0,1)--->(1,0)

其他数都是一样的规律就不一一列举出来

对于矩阵中第 i 行的第 j个元素,在旋转后,它出现在倒数第 i 列的第 j 个位置。

翻译成代码

对于矩阵的元素matrix[j][n-i-1] 在旋转后变成matrix2[i][j] ;在下列代码中n为3,

2.代码 

<1>根据上述规则,进行矩阵的旋转把matrix的元素放入到matrix2。

<2>输出旋转后的矩阵

{int matrix[3][3] = { 2,4,-1,-10,5,11,18,-7,6 };int matrix2[3][3];for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){matrix2[i][j] = matrix[j][3-1-i];           //跟顺时针旋转的区别}}for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){printf("%d\t", matrix2[i][j]);}printf("\n");}}

 

 顺时针旋转180°(等同于逆时针旋转180°)

 

1.思路 

4:(0,1)--->(2,1)

其他数都是一样的规律就不一一列举出来

对于矩阵中第 i 行的第 j个元素,在旋转后,它出现在倒数第 i 列的第 j 个位置。

翻译成代码

对于矩阵的元素matrix[i][j]  在旋转后变成matrix2[n-j-1][n-i-1];在下列代码中n为3,

2.代码 

<1>根据上述规则,进行矩阵的旋转把matrix的元素放入到matrix2。

<2>输出旋转后的矩阵

main()
{int matrix[3][3] = { 2,4,-1,-10,5,11,18,-7,6 };int matrix2[3][3];for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){matrix2[3 - i - 1][3 - j - 1] = matrix[i][j];}}for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){printf("%d\t", matrix2[i][j]);}printf("\n");}}

3.结果如下

 


http://chatgpt.dhexx.cn/article/THww4bnQ.shtml

相关文章

C语言矩阵乘法

本篇内容 1&#xff09;首先介绍了矩阵乘法的基本原理&#xff1b; 2&#xff09;然后介绍了相对初阶的C语言乘法代码设计&#xff1b; 3&#xff09;最后根据C语言动态内存规划&#xff0c;提出了更加便捷、优化的代码设计&#xff0c;希望能给大家带来帮助。 更新&#xff1a…

c语言之矩阵

矩阵作为线性代数核心内容之一也是刷题人时常会遇到的一种类型。本篇博客简单介绍一下矩阵转置、上三角矩阵以及杨氏矩阵。 1.转置矩阵&#xff1a;输入m行n列的矩阵以n行m列的方式打印出来。只要将数组的行列进行交换即可&#xff0c;并不难想也不难写.&#xff08;相应练习&a…

vue-quill-editor 使用-图片上传

vue 项目开发中&#xff0c;文本编辑器的选择很多&#xff0c;一些熟悉的文本编辑器都可以使用&#xff0c;如UEditor、wangEditor&#xff0c;这里介绍基于 vue 的一个文本编辑器插件 vue-quill-editor 此插件基于 quill&#xff0c;所以使用 cdn 节点方式引用时&#xff0c;…

Error: Cannot find module ‘./XXX.jpg‘ 问题解决 Vue动态显示图片

刚开始学习Vue 在循环输出图片时&#xff0c;浏览器报错Error: Cannot find module ‘./tqwl.jpg’ 这张图片是放在本地文件夹内的 这是图片的展示代码 <el-table-column label"展示" width"180"><template slot-scope"scope"><…

解决js中获取不到图片路径的情况

在写一个todoList作品时&#xff0c;需要点击事件更改图片路径时&#xff0c;遇到了获取不到图片路径的情况 在html中用src“”来获取的图片&#xff0c;凭主观臆想觉得在js中判断它的路径时&#xff0c;没有作用&#xff0c;控制台中显示的不是我们熟悉的路径格式 查阅得知&a…

vue-quill-editor删除服务器多余图片

这几天在做富文本编辑业务&#xff0c;在删除服务器资源方面遇到了问题&#xff0c;网上搜索了很久都没找到办法&#xff0c;现在把自己解决的过程记录如下&#xff1a;思路&#xff1a; 点击工具栏的图标&#xff0c;选取图片&#xff08;不是base64格式&#xff09;上传到服…

将JS代码隐藏在图片中的方法

之前写过利用图片重写的方法清除图片中恶意代码的文章&#xff0c;java清除恶意代码 &#xff0c;但这些图片中的恶意代码是怎么植入进去的呢&#xff0c;有简便方法&#xff0c;也有复杂方法。先来看如下这张图片&#xff0c;是Google的LOGO&#xff0c;是一张完全正常的png图…

VUE-QUILL-EDITOR安装与调节图片大小记录

一、quill-editor安装 安装quill-editor npm install vue-quill-editor --save安装调节图片大小插件(不是必须的&#xff0c;看需求) npm install quill-image-resize-module -S二、 引用&#xff08;两种方式&#xff09; 全局引用 在main.js中填入以下代码 import Vue f…

将js/css脚本放到png图片中的实践。

起因 高级浏览器支持data协议,如: 参考:http://en.wikipedia.org/wiki/Data:_URL <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6…

[JS插件] PhotoSwipe 图片浏览插件使用方法

一、介绍 PhotoSwipe 是专为移动触摸设备设计的相册/画廊.兼容所有iPhone、iPad、黑莓6,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品。 官方网站&#xff1a;http://photoswipe.com/ 源码下载&#xff1a;https://github.com/dimsemenov/photo…

原生js 图片查看器

将以前用angular 写的 自定义指令 封装成 插件&#xff0c;无需引用jquery、angular。 下载下来即可查看效果。 github网址: GitHub - wzhGitH/imgView: js 图片查看器,H5图片预览(imgView) 百度云下载链接: 百度网盘 请输入提取码 密码: gidq 可实现放大、缩小、拖拽、旋转…

vue-quill-editor拖拽或粘贴的图片上传到服务器回显插入图片后删除生成的Base64图片

问题描述&#xff1a;拖拽或粘贴图片上传到服务器后返回url插入富文本编辑器后&#xff0c;quill默认生成的base64图片链接也同时出现在富文本编辑器中&#xff0c;等于是有两张相同的图片&#xff0c;一张是我们服务器图片&#xff0c;一张是base64格式图片&#xff01;&#…

Unity3D在UI中加入Image图片

在将图片拖入到Assets后发现根本不能将图片拖入到UI中&#xff1a; 新建Image后在Source Image中也不能找到图片&#xff1a; 那是因为你没把图片设置为Sprite&#xff0c;图片只是Texture而已&#xff0c;只能作为贴图使用。 可以将图片设置为Sprite: 这样一切就正常了&#…

纯JS图片查看器

目前支持&#xff1a;放大、缩小&#xff08;含滚轮&#xff09;、旋转、还原 /*** 说明信息* date 2022/10/13 19:46:44* 初始化图片查看器* date 2022/09/21 14:40:06* id 唯一标识&#xff0c;指定id区域内的图片* params 扩展参数&#xff0c;设置图片大小&#xff0c;目前…

vue-quill-editor上传图片

问题&#xff1a; vue-quill-editor富文本编辑器上传图片默认为base64&#xff0c;存入数据库过于过于庞大&#xff0c;使用quill-image-extend-modulevue-quill-editor实现图片地址上传。 解决完之后效果图&#xff1a; 解决思路&#xff1a; 哈哈&#xff0c;第一步当然去…

unity UI 加入image图片

1.新建画布&#xff0c;新建image. 2.我们发现这个时候把Assets里的图片直接拖到Image上是行不通的。原因就是此时的图片没有设为sprite. 处理方法&#xff1a;点击图片&#xff0c;修改Texture Type为Sprite. 下图左边图片为调整后&#xff0c;右边图片为没有调整. 3.调整后就…

js预览本地图片

本地图片在上传服务器前&#xff0c;如何预览效果&#xff1f; 一个方法就可以了&#xff0c;主要是如何从事件中读取文件数据&#xff0c;放到<img>展示 幸运的是&#xff0c;事件中的图片数据已经被转换成<img>可直接识别的内容&#xff0c;直接赋值给<img&g…

python QT 图片缩放,移动

python QT graphicsView控件实现图片的缩放与移动 1、效果图2、界面搭建3、实现方法3.1、构建处理图元的类3.1、绘制图像3.2、拖拽方法实现3.3、缩放方法实现 4、调用方法 1、效果图 选择图片后可在graphicsView窗口中显示选择的图片&#xff0c;可以用鼠标拖拽图片。当鼠标停…

Unity UI修改Image中的图片资源

Unity UI修改Image中的图片资源 一、取资源文件 把资质文件放到Assets文件夹下Resources文件中。 二、在属性面板下修改图片类型 三、在脚本中修改需要修改的资源 Sprite sprite Resources.Load(“Images/2”); //Images文件夹下名为2的图片 Image2.sprite sprite; //修改…