当前位置: 首页 > news >正文

Matlab学习01-矩阵

目录

一,矩阵的创建

1,直接输入法创建矩阵

2,利用M文件创建矩阵

3,利用其它文本编辑器创建矩阵

二,矩阵的拼接

1,基本拼接

1) 水平方向的拼接

2)垂直方向的拼接 

3)拼接函数 

三,矩阵的寻访

1,下标寻访(全下标方式)

 2,单元素寻址(单下标方式)

3,多元素寻址


矩阵是进行数据处理和运算的基本元素。

一,矩阵的创建

 矩阵的创建主要有四种方法:直接输入法,利用M文件创建矩阵,利用其它文本编辑器建立矩阵,利用matlab内置函数建立矩阵。

1,直接输入法创建矩阵

直接输入法:直接从键盘输入矩阵的元素。
将矩阵的元素用方括号 [] 括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号 , 隔开,不同行的元素之间用分号 ; 或回车符分隔。如下创建三行两列的矩阵👇

Matrix=[1,2;3,4;5,6] 


也可以使用matlab的系统内置特殊函数来创建矩阵,如下👇
1)使用zeros函数,创建元素全部为0的矩阵

2)使用ones函数,创建元素全部为1的矩阵

3)使用eye函数,创建单位矩阵,单位矩阵是方阵,行和列的数量必须相等

4)使用rand函数,创建在(0,1)区间均匀分布的随机矩阵

5)使用randn函数,创建均值为0,方差为1的标准正态分布随机矩阵

6)使用hilb函数,创建Hilbert希尔伯特矩阵(方阵)

7)使用magic函数,创建魔法矩阵(方阵)

2,利用M文件创建矩阵

利用M文件创建矩阵:使用系统自带的文本编辑调试器专门建立一个M文件。
如下,如果当前界面没有文本编辑器的窗口↓

在命令行中输入edit,并回车↓

之后在m文件中编写代码,输入待建矩阵(三行两列)↓

Matrix=[1,2;3,4;5,6]  

保存m文件的时候,不能和里面的变量名一样,不然无法识别。

接着,在matlab命令行窗口中输入包含矩阵的m文件的文件名,就可以自动创建一个名为m_Matrix的矩阵,可供以后使用。因此,如果遇到矩阵比较大,不想重复创建的话,建议使用这种方式创建矩阵。
因为我习惯性在每个语句的结束位置加上分号,所以当我输入m_Matrix后,没有矩阵输出↓

这个时候只需要将分号去掉即可↓

3,利用其它文本编辑器创建矩阵

利用其它文本编辑器创建矩阵:例如编辑一个文本文件。
在记事本中输入:

16.0 3.0 2.0 9.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0

编辑好之后 ctrl+s 保存(这里留了一个小坑)

再回到matlab命令行窗口输入命令: load t_Matrix.txt,会报错↓

之所以报错,是因为在matlab工具箱的搜索路径里面没有txt目录(也就不会有在txt目录下的t_Matrix.txt文件),这个时候有两个方法解决,一个是只添加txt路径,另外一个是添加整个自建matlab工程所在的目录。这里我为了后期方便,直接添加整个目录(包含下面的子目录)↓。

之后就会将自创的matlab目录下的全部子文件加载到matlab软件的搜索路径下↓

再重新输入命令:

 load t_Matrix.txt



这次没有报错,在工作区可以看到t_Matrix的文件中的矩阵大小:4\times4(四行四列)
【当加载的文件过多并且开始杂乱的时候,可以在matlab命令行窗口输入clear清空工作区,清空之后如果还想用,就得需要重新加载】
之后在matlab命令行窗口输入加载进去的文件名t_Matrix,如下👇所示

可以看到在M编辑器窗口参看文件的结构及数据排列。

二,矩阵的拼接

两个或者是两个以上的单个矩阵,按一定的方向进行链接生成新的矩阵,就是矩阵的拼接。

矩阵的拼接是一种创建矩阵的特殊方法,它的基础元素是原始矩阵

1,基本拼接

 矩阵的拼接有水平方向的拼接和垂直方向的拼接。

1) 水平方向的拼接

水平方向的拼接语法:

新矩阵名=[参与拼接的矩阵1,参与拼接的矩阵2] 或新矩阵名=[参与拼接的矩阵1 参与拼接的矩阵2] 

C=[A,B] 或  C=[A\, B]

可以看到,在对矩阵进行水平方向的结构操作时,都是默认使用逗号或者是空格隔开,和之前学习的创建矩阵一样。

设参与拼接的两个矩阵,其中一个矩阵为M_{a} \times N_{a},另外一个矩阵为M_{b} \times N_{b},则新生成的矩阵为M_{a} \times (N_{a}+N_{b}),即新矩阵的列数是两个原矩阵的列数相加,行数不变。
【注意】:要串联的数组的维度必须一致,对于水平方向的拼接来说,只需要将两个原矩阵的行数设置一样就行,列数无要求,可多可少。

如下,将矩阵matrix1和矩阵matrix2进行水平拼接,得到新的矩阵,如下👇

2)垂直方向的拼接 

垂直方向的拼接语法:

新矩阵名=[参与拼接的矩阵1参与拼接的矩阵2]                       % 推荐这种方法进行拼接

或 新矩阵名=[参与拼接的矩阵1

参与拼接的矩阵2] 

C=[A;B] 

  或C=[A

B]

可以看到,在对矩阵进行垂直方向的结构操作时,都是默认使用分号或者是回车键隔开,和之前学习的创建矩阵一样。

设参与拼接的两个矩阵,其中一个矩阵为M_{a} \times N_{a},另外一个矩阵为M_{b} \times N_{b},则新生成的矩阵为(M_{a}+M_{b}) \times N_{a},即新矩阵的行数是两个原矩阵的列数相加,列数不变。
【注意】:要并联的数组的维度必须一致,对于垂直方向的拼接来说,只需要将两个原矩阵的列数设置一样就行,行数无要求,可多可少。

如下,将矩阵matrix1和矩阵matrix2进行垂直方向拼接,得到新的矩阵,如下👇

 

3)拼接函数 

 在matlab中,除了使用矩阵拼接符 [\, ]外,还可以使用矩阵拼接函数来拼接矩阵。

matlab中的矩阵拼接函数
horzcat水平拼接
vertcat垂直拼接
cat指定维数拼接

可以看到,cat函数有两种不同的参数列表,一个是只有两个矩阵进行拼接,另外一个是多个矩阵进行拼接。现以第一个为例(只有两个矩阵进行拼接),当dim输入不同,拼接的方法也会不同:

  • dim=1,沿垂直方向上对两个矩阵进行拼接。
  • dim=2,沿水平方向上对两个矩阵进行拼接。
  • dim=3,三维矩阵
repmat通过对现有矩阵的复制和粘贴操作拼接
blkdiag现有矩阵构造一个块对角矩阵

cat函数的dim=3时,对应的效果如下👇( matrix1=ones(3,2),matrix2=zeros(3,2))

其它函数现在暂时用不到,之后遇到了再来补充。如果有兴趣的可以自行去了解并学习。

三,矩阵的寻访

 在matlab中,矩阵的寻访主要有:下标寻访,单元素寻访,多元素寻访。

1,下标寻访(全下标方式)

matlab中矩阵的下标表示与常用的数学习惯相同:使用分别表示行和列的“双下标”,矩阵中的元素都有对应的第几行,第几列。这种表示方法简单直观,几何概念比较清晰。

例如我有一个矩阵:

 如果我想要输出矩阵的第三行第二个元素:6,那么我就需要写上矩阵的名字matrix加上小括号,小括号里面传入行的序号和列的序号(第一行第一列用(1,1)表示),因此输出元素6的语句如下:

 2,单元素寻址(单下标方式)

单元素寻址就是将矩阵看成一维的向量(扁平化)。依旧是之前的矩阵:

 如果我想要取出元素6,使用单下标的方式,就是矩阵名加上小括号,小括号内输入元素6横着数的序号6:

当矩阵数据较多,不能在较短时间内通过序号数到所要找的元素时,推荐通过行和列的表达式来找到对应元素的序号。假设一个矩阵为M \times N(M行N列),要找到第 m行第n列元素的序号sn则   sn=(n-1)*M+m

例如,我有一个十三行十列的矩阵

13\times10=130个元素,元素从1开始并递增(主要是为了方便查看计算结果是否正确)。

% 创建一个包含从 1 到 130 的向量
data = 1:130
% 将向量重塑为 13 行 10 列的矩阵
matrix = reshape(data, 13, 10)

 如果我要使用单下标的方式找到第十二行,第五列的元素64

那么,通过表达式可知:sn=(n-1)*M+m=(5-1)*13+12=64

所以元素64在扁平化的一维向量中的第64位。编写语句:matrix(64)

就可以通过单下标找到对应的元素。

再举一个矩阵的例子

matrix1=[1,2,3,4,5,6,7,8,9,10,11,12,13;14,15,16,17,18,19,20,21,22,23,24,25,26;27,28,29,30,31,32,33,34,35,36,37,38,39] 

要找到第二行第五列的元素18,对应的序号sn=(n-1)\times M+m=(5-1)\times 3+2=14
 

 通过单下标寻址得到元素 18 ↓

3,多元素寻址

多元素寻址的语法:

矩阵名[预查找行的起始位预查找行的结束位 预查找列的起始位预查找列的结束位 

例如我有一个三行十列的矩阵:
 接下来通过矩阵多元素寻址,包括寻址该矩阵的

  • 某一行或某一列的若干元素;
    ① 第二行的第三,四,五列的元素。行只需要一个数,列的位置放置两个数并用冒号分隔。

    ② 第二列的第一,二,三行的元素
  • 访问整行,整列元素;
    ①整个第二行

    ②整个第二列
  • 访问若干列和若干行的元素;
    ① 例如访问第二,四,六列的元素

    ※起始位和结束位中间的数是步长⭐,表示每两步取一组数。※

    ① 例如访问第一,二,三行的元素
  • 访问矩阵所有元素

有问题请在评论区留言或者是私信我,回复时间不超过一天。

相关文章:

Matlab学习01-矩阵

目录 一,矩阵的创建 1,直接输入法创建矩阵 2,利用M文件创建矩阵 3,利用其它文本编辑器创建矩阵 二,矩阵的拼接 1,基本拼接 1) 水平方向的拼接 2)垂直方向的拼接 3&#xf…...

【复旦微FM33 MCU 外设开发指南】外设篇1——硬件除法器

前言 本系列基于复旦微FM33LC0系列单片机的DataSheet编写,旨在提供一些开发指南。 本文章及本系列其他文章将持续更新,本系列其它文章请跳转【复旦微FM33 MCU 外设开发指南】总集篇 本文章最后更新日期:2024/10/24 文章目录 前言用途工作流…...

在元神操作系统启动时自动执行任务脚本

1. 背景 本文主要介绍让元神操作系统启动时自动执行任务脚本的方法,适用于无人化任务执行目的。将任务脚本及相关的应用程序准备好之后,把装有元神操作系统的U盘插入目标电脑,然后打开电脑电源就会自动完成所设置的任务。 2. 方法 &#x…...

JAVA学习-练习试用Java实现“判断是否为等边三角形的方法”

问题: 定义一个三角形类(Triangle),包含三个边长(a, b, c)属性,并实现一个判断是否为等边三角形的方法。 解答思路: 下面是一个简单的 Triangle 类定义,其中包含了三个…...

Leetcode 140 Word Break II

题意&#xff1a;给定一个string以及一个wordDict,要求返回一个vector<string> &#xff0c;这个vector中的string都是word Dict中的组合 Input: s “catsanddog”, wordDict [“cat”,“cats”,“and”,“sand”,“dog”] Output: [“cats and dog”,“cat sand dog”…...

文理学院数据库应用技术实验报告0

文理学院数据库应用技术实验报告0 实验内容 打开cmd,利用MySQL命令连接MySQL服务器。 mysql -u root -p查看当前MySQL服务实例使用的字符集(character)。 SHOW VARIABLES LIKE character_set_server;查看当前MySQL服务实例支持的字符序(collation)。 SHOW VARIABLES LIKE c…...

Bootstrap 4 按钮

Bootstrap 4 按钮 Bootstrap 4 是一个流行的前端框架,它提供了大量的组件和样式,用于快速开发响应式和移动设备优先的网页。在本文中,我们将重点讨论 Bootstrap 4 中的按钮组件,包括它们的基本用法、样式选项和自定义方法。 基本按钮 在 Bootstrap 4 中,创建一个基本按…...

【笔记】LLM位置编码之标准位置编码

标准位置编码 起源原理证明&#xff1a;对于任何固定的偏移量 k k k&#xff0c; P E p o s k PE_{posk} PEposk​可以表示为 P E p o s PE_{pos} PEpos​的线性函数。计算 P E p o s k 与 P E p o s PE_{posk} 与PE_{pos} PEposk​与PEpos​的内积结论 通俗理解缺点 起源 由…...

环 境 配 置

01 Ubuntu18.04中QT环境 1. 下载安装包 官网 http://download.qt.io/archive/qt/5.9/5.9.1/qt-opensource-linux-x64-5.9.1.run 国内镜像服务器 ​https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.9/5.9.1/qt-opensource-linux-x64-5.9.1.run QQ群 ...... 2. 安装 把下载…...

理解dbt artifacts及其实际应用

dbt是数据分析领域的一种变革性工具&#xff0c;它使数据专业人员能够对仓库中的数据进行转换和建模。它的强大功能之一是生成dbt artifacts&#xff1a;dbt运行的结构化输出&#xff0c;提供对dbt项目及其操作的深入了解。 dbt 构件介绍 dbt构件是每次dbt运行时生成的JSON文…...

100种算法【Python版】第15篇——KMP算法

本文目录 1 算法原理1.1 部分匹配表2 实现步骤3 示例说明4 python实例5 算法应用领域1 算法原理 KMP(Knuth-Morris-Pratt)算法是一种用于高效字符串匹配的算法。它通过预处理模式字符串,构建一个部分匹配表(前缀函数),以避免重复比较,从而提高匹配效率。KMP 算法通过利…...

【软件工程】软件项目管理/工程项目管理复习资料

第一章 软件项目管理概述习题 一. 填空题 实现项目目标的制约因素有&#xff08; 项目范围 &#xff09;、&#xff08; 成本 &#xff09;、&#xff08; 进度计划 &#xff09;、&#xff08; 客户满意度 &#xff09;等。 项目管理&#xff08; 启动过程组 &#xff09;、…...

C语言基础题(大合集2)

1. 时间转换 给定秒数 --> 输出秒数 转化成 时/分/秒 //时间转换 //给定秒数 --> 转换成 小时/分/秒 int main() {//输入int seconds 0;int h 0;//小时int m 0;//分钟int s 0;//秒scanf("%d", &seconds);//计算h seconds / 60 / 60;m seconds / 60…...

Stable Diffusion视频插件Ebsynth Utility使用方法

在Stable Diffusion中安装完Ebsynth Utility后&#xff0c;就可以开始试用了。 启动Stable Diffusion后&#xff0c;出面画面&#xff1a; 1、步骤1&#xff1a;视频分帧及生成蒙板帧 填入工程目录&#xff0c;选择上传所用的视频文件&#xff1a;注意对目录命名的要求-不能有…...

Ubuntu忘记密码

如果你忘记了WSL&#xff08;Windows Subsystem for Linux&#xff09;中Linux发行版的密码&#xff0c;可以按照以下步骤来重置密码&#xff1a; 一、对于Ubuntu或Debian等基于Debian的发行版&#xff08;以Ubuntu为例&#xff09; 关闭WSL实例&#xff08;如果正在运行&…...

使用Python实现深度学习模型:智能极端天气事件预测

极端天气事件,如暴雨、台风和热浪,往往会对人类社会和自然环境产生深远的影响。近年来,气象数据和深度学习技术的发展使得智能预测极端天气成为可能。通过训练深度学习模型,我们可以建立一个自动化的预测系统,从大量的历史气象数据中学习并预测未来的极端天气事件。这篇文…...

cJson函数解析

获取json版本号 CJSON_PUBLIC(const char*) cJSON_Version(void);设置自定义内存分配函数 CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks);解析 JSON 字符串并将其转换为 cJSON 数据结构 CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);用于解析指定长度的…...

基于SSM+微信小程序的跑腿平台管理系统(跑腿3)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的跑腿平台管理系统实现了管理员、接单员及用户三个角色。 1、管理员实现了首页、个人中心、管理员管理、基础数据管理、接单详情、跑腿任务管理等。 2、接单员实现了…...

mit6824-02-Lab1:MapReduce分布式实现

文章目录 写在前面总体思路分析代码实现参考链接 写在前面 具体上次写6824的第一篇文章已经过去了快一个月&#xff0c;上次学习了MapReduce论文相关理论后一直没有继续写代码实现&#xff0c;自己一边要搞论文没有整块时间实现&#xff0c;这两天抽写了相关代码&#xff0c;算…...

【NOIP普及组】 装箱问题

【NOIP普及组】 装箱问题 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 有一个箱子容量为V&#xff08;正整数&#xff0c;0&#xff1c;&#xff1d;V&#xff1c;&#xff1d;20000&#xff09;&#xff0c;同时有n个物品&#xff08;0&…...

Flutter主题最佳实践

Styling your Flutter app not only makes it visually appealing but also enhances the user experience. Flutter offers a robust theming system that helps you maintain consistency and customize your app’s look and feel. 设计 Flutter 应用程序的风格不仅能使其在…...

计算机网络:网络层 —— IPv4 数据报的首部格式

文章目录 IPv4数据报的首部格式IPv4数据报分片生存时间 TTL字段协议字段首部检验和字段 IPv4数据报的首部格式 IPv4 数据报的首部格式及其内容是实现 IPv4 协议各种功能的基础。 在 TCP/IP 标准中&#xff0c;各种数据格式常常以32比特(即4字节)为单位来描述 固定部分&#x…...

MySQL 之 索引

索引 概述 是帮助MySQL高效获取数据的数据结构&#xff0c;在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0c;这样就可以在数据结构上实现高效查找算法&#xff0c;这种…...

手动探针台的用途及组成部分

探针台系统分为手动探针台与自动探针台&#xff0c;以下我们主要分析手动探针台。 探针台用途&#xff1a; 手动探针台又称探针测试台主要用途是为半导体芯片的电参数测试提供一个测试平台&#xff0c;探针台可吸附多种规格芯片&#xff0c;并提供多个可调测试针以及探针座&am…...

❤️算法笔记❤️-(每日一刷-5、最长回文串)

文章目录 题目思路解答 题目 给你一个字符串 s&#xff0c;找到 s 中最长的 回文 子串。 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; 输入&#xf…...

nginx 路径匹配,关于“/“对规则的影响

1、基本规则 假如后端实际地址为&#xff1a; http://127.0.0.1:8080/api/user/getById?id123 则&#xff1a; 1&#xff09;通过nginx转发&#xff0c;使用http://127.0.0.1/api/user/getById?id123访问 server {listen 80;server_name 127.0.0.1;location /api…...

安全知识见闻-网络安全热门证书

一、OSCP(Offensive Security Certified Professional) 1. 证书介绍 2.考点 3.部分考试要求 4.练习方法 二、OSEP(Offensive Security Exploit Developer) 1.证书介绍 2.考点 3.练习方法 三、CISSP&#xff08;Certified lnformation Systems Security Professional&a…...

Pandabuy事件警示:反向海淘品牌如何规避风险

Pandabuy&#xff0c;作为一个曾经备受海外消费者青睐的跨境电商平台&#xff0c;以其丰富的商品种类、优质的服务和便捷的购物流程迅速崛起。然而&#xff0c;近期的一系列丑闻&#xff0c;尤其是涉嫌销售大量仿制名牌运动鞋的事件&#xff0c;让Pandabuy陷入了前所未有的信任…...

【纯血鸿蒙】安装hdc工具

这里我先写Mac版的,Windows的在下面 首先要知道你的SDK安装在哪里了,不知道的话,可以打开DevEco Studio,打开设置页面里的HarmonyOS SDK,这个我们之前配置环境变量的时候用过。 其实主要是用到这里toolchains下的hdc命令。 所以我们需要配置环境变量。 1、打开Mac下的…...

TensorFlow面试整理-给定一个任务(如图像分类、文本分类),如何从头构建一个TensorFlow模型?

构建一个 TensorFlow 模型来执行图像分类或文本分类任务的步骤基本类似,虽然数据类型不同,但核心流程相同。以下将以 图像分类任务 和 文本分类任务 为例,展示如何从头构建 TensorFlow 模型,覆盖数据预处理、模型构建、编译、训练和评估的完整流程。 一、图像分类任务:从头…...