本文所使用的MatLab为MATLAB R2021a,其他版本的内容基本一致。
合集:
MATLAB入门到精通(一):简介及数据类型
MATLAB入门到精通(二):基本语句及绘图
MATLAB入门到精通(三):常用函数及数学应用
一、MATLAB概述
1.1 MATLAB简介
MATLAB译为矩阵实验室,最初用来提供通往LINPACK和EISPACK矩阵的软件包接口。后来,它渐渐发展成为通用的科技计算图形交互系统和程序语言。
MATLAB支持主流的操作系统,提供了大量的平台独立措施。在其他平台可以正常运行的文件,在新的平台上仍可以运行。
任何一个MatLab程序的基本组成单元都是数组,数组是一组数据值的集合,这些数据被编上行号列号,拥有唯一的名称。
1.2 MATLAB界面
MatLab的工作界面主要由工具栏、当前文件夹窗口、工作区窗口、命令历史记录窗口和命令行窗口组成。如图1-1
1.3 命令行与脚本
可以浅显的这样理解:
- 命令行是每次执行一行命令,一般可以做一些小的测试或者一些命令使用,也是数据的展示窗口。
- 脚本是每次执行多行命令,后面的程序一般都是在这里编写,可以选择执行的范围。对应的命名为.m结尾的文件。
二、数组
2.1 一维数组的创建
2.1.1 手动创建向量
一维数组就是向量,下文的向量意思也和一维数组相同。
2.1.2 其他方式创建向量
①用 :创建向量
语法为:a=j:s:k
j表示起始数字,s表示步长(省略为1),k表示结尾数字。
② 用函数linspace创建向量
linspace函数可以生成按照等差形式排列的行向量。语法为:a=linspace(x1,x2,n),即在x1和x2之间生成n个数据,这n个数据自动的按照等差数列的形式排列。
2.1.3 行列向量的转换
① 转置的方式转换
在matlab中 ‘ 的作用是对数组进行转置,在一维数组中即为行列向量的转换。这里对于一维数组的处理与二维数组的处理相同,后续不在赘述。
② 使用函数transpose
2.2 二维数组的创建
二维数组可以看成是矩阵,与一维矩阵看成向量相同,本文后续矩阵和二维数组是同一意思。
2.2.1 手动创建矩阵
即为多行向量的合并,每行之间用 ; 隔开。
2.2.2 其他方式创建矩阵
matlab种矩阵的创建方式有很多,这里无法全部列举,仅对使用更多的方式进行介绍。
① ones()函数创建全1矩阵
语法为:a=ones(m,n),即为生成一个m行n列元素全为1的矩阵a。
可以省略少写一个参数,即为对应nxn的全1矩阵。
② eye()函数创建单位矩阵
语法为:a=eye(m,n),即为生成一个m行n列的单位矩阵a
可以省略少写一个参数,即为对应nxn的单位矩阵。
③ zeros()函数创建全0矩阵
语法为:a=zeros(m,n),即为生成一个m行n列元素全为0的矩阵a。
可以省略少写一个参数,即为对应nxn的全0矩阵。
④ rand()函数创建均匀分布的矩阵
语法为a=rand(m,n),即为生成一个m行n列元素均匀分布的随机矩阵a。
可以省略少写一个参数,即为对应nxn的随机的矩阵。
⑤ diag()函数创建对角矩阵
语法为a=diag(D),即为生成一个对角元素为矩阵D的矩阵,D为一为数组。
2.3 数组的寻址
数组中总数包含多个元素,因此在对数组的单个元素或者多个元素进行访问时,需要进行数组的寻址运算。
2.3.1 一维数组的寻址
一维数组寻址操作比较简单,直接看例子即可。
① 访问单个元素
② 访问多个元素
2.3.2 二维数组的寻址
二维数组寻址与一维数组的寻址类似。
还可以使用寻址函数sub2ind()读取数组中凌乱排序的元素,是将一个二维数组的下标变成索引,然后用索引对二维数组进行寻址。例如:
—————————(2023/3/1418:13)——————————
2.4 数组的排序
MATLAB提供数组排序的函数sort(),该函数可对任意给定的数组进行排序。
2.4.1 一维数组的排序
语法:[b,index]=sort(a),即为对数组a进行排序,b为排序后的数组,Index为b中对应元素在a中的索引。
2.4.2 二维数组的排序
语法:[b,index]=sort(A,dim,mode),表示对数组A进行排序,若dim=1表示对每一列进行排序(可省略);若dim=2表示对每一行进行排序(不能省略)。mode=‘descend’表示进行降序排列,mode=‘ascend’表示进行升序排列,默认为升序排列。
2.5 数组的检测
① isempty()函数
isempty()函数主要用于检测某个数组是否为空数组。
若返回值为1则为空数组,返回值为0则不是空数组。
② isscalar()函数
isscalar()函数主要用来检测某个数组是否为单元素的标量数组.
调用方法与上述一致。
③ isvector()函数
isvector()函数主要用来检测某个数组是否具有一行或一列元素的一维向量数组,即判断是不是向量。
④ issparse()函数
issparse()函数用来检测某个数组是否为稀疏矩阵。
2.6 数组的结构属性
2.6.1 数组的长度
数组的长度,即为数组的行数和列数之间的最大值。
使用lengeth()函数得到。