《MATLAB/Simulink系统仿真超级学习手册》——2.2 MATLAB语言基本元素

简介:

本节书摘来自异步社区《MATLAB/Simulink系统仿真超级学习手册》一书中的第2章,第2.2节,作者:MATLAB技术联盟 , 石良臣著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 MATLAB语言基本元素

MATLAB/Simulink系统仿真超级学习手册
MATLAB语言提供了丰富的数据类型,如实数、复数、向量、矩阵、字符串、多维数组、结构体、类和对象等,还提供了丰富的内置功能函数。这些功能使得MATLAB的编程功能非常强大。本节介绍变量和矩阵这两种最基本且常用的数据类型以及赋值语句的基本形式。

2.2.1 变量
变量是保存数据信息的一种最基本的数据类型。变量的命名应遵循如下规则:

(1)变量名必须以字母开头;

(2)变量名可以由字母、数字和下划线混合组成;

(3)变量名区分字母大小写;

(4)MATLAB保留了一些具有特定意义的默认变量,读者编程时可以直接使用,并尽量避免另外自定义,表2-4为MATLAB的系统保留变量。
screenshot

注意:A和a表示的是不同的变量,读者编程时必须注意。

2.2.2 赋值语句
MATLAB采用命令行形式的表达式语言,每一个命令行就是一条语句,其格式与书写的数学表达式十分相近,非常容易掌握。读者在命令窗口输入语句并按回车键确认后,该语句就由MATLAB系统解释运行,并给出运行结果。MATLAB的赋值语句有下面两种结构。

1.直接赋值语句
直接赋值语句的基本机构如下:

赋值变量=赋值表达式

其中,等号右边的表达式由变量名、常数、函数和运算符构成,直接赋值语句把右边表达式的值直接赋给了左边的赋值变量,并将返回值显示在MATLAB的命令窗口中。

【例2-6】对a赋值,实现a=100+99。

在MATLAB命令窗口中输入下面语句并按回车键确认。

>> a=100+99

运行结果如下:

a =
   199

注意:

(1)若赋值语句后面没有分号“;”,MATLAB命令窗口中将显示表达式的运算结果;若不想显示运算结果,则应该在赋值语句末尾加上分号;

(2)若省略赋值语句左边的赋值变量和等号,则表达式运算结果将默认赋值给系统保留变量ans;

(3)若等式右边的赋值表达式不是数值,而是字符串,则字符串两边应加单引号。

2.函数调用语句
直接赋值语句的基本结构如下:

[返回变量列表]=函数名(输入变量列表)

其中,等号右边的函数名对应于一个存放在合适路径中的MATLAB文本文件。函数可以分为两大类:一类是MATLAB内核中已经存在的内置函数;另一类是读者根据需要自定义的函数。

返回变量列表和输入变量列表均可以由若干变量名组成。

注意:

若返回变量个数大于 1,则它们之间应该用逗号或空格分隔;若输入变量个数大于1,则它们之间只能用逗号分隔。
screenshot

在MATLAB命令窗口中输入下面语句并按回车键确认。

>> a=sin(pi/2)

运行结果如下:

a =
  1

注意:

(1)函数名的命名规则与变量名命名规则一致,读者在命名自定义函数时也必须避免与MATLAB已有的内置函数重名;

(2)对于内置函数,读者可直接调用;对于自定义函数,该函数所对应的M文件应当存在并且保存在MATLAB可以搜索到的目录中。

2.2.3 矩阵及其元素表示
MATLAB的中文意思是“矩阵实验室”,矩阵是MATLAB进行数据处理的基本变量单元。因此,掌握矩阵的表示方法是进行MATLAB编程和应用的基础。

1.矩阵的表示
用MATLAB语言表示一个矩阵非常容易。在MATLAB命令窗口中输入下面语句并按回车键确认。

>> A=[1,2;3,4]

运行结果如下:

A =
   1   2
   3   4

可见矩阵变量A被成功赋值,并在MATLAB的工作空间中建立一个名为A的矩阵变量,读者可以在后继的命令和函数中随意调用该矩阵。在输入矩阵过程中必须遵循以下规则:

(1)必须使用方括号“[]”包括矩阵的所有元素;

(2)矩阵不同的行之间必须用分号或回车符隔开;

(3)矩阵同一行的各元素之间必须用逗号或空格隔开。

为方便用户使用,提高编程效率,除了最基本的直接输入方法外,MATLAB还提供给用户一些可以直接调用的内置基本矩阵函数,有时可以成为创建矩阵的捷径。

表2-5为MATLAB提供的主要内置基本矩阵函数。
screenshot

【例2-8】调用rand函数创建一个3行4列的随机矩阵。

在MATLAB命令窗口中输入下面语句并按回车键确认。

>> A=rand(3,4)

运行结果如下:

A =
  0.3112  0.6020  0.6892  0.0838
  0.5285  0.2630  0.7482  0.2290
  0.1656  0.6541  0.4505  0.9133

注意:向量是矩阵的一种特例,前面介绍的有关矩阵的表示方法完全适用于向量,只是表示矩阵行列数的n和m中,有一个为1。

【例2-9】输入一个行向量a=[1,2,3]和一个列向量b=[1;2;3]。

在MATLAB命令窗口中输入下面语句并按回车键确认。

>> a=[1,2,3]
b=[1;2;3]

运行结果如下:

a =
     1   2   3
b =
   1
   2
   3

MATLAB还提供了一个便利且高效的表达式来给等步长的行向量赋值,即冒号表达式。冒号表达式的基本调用格式为:

V=s:h:e

其中,s、e为标量,分别代表向量的起始值和终止值,h代表向量元素之间的步长值。

【例2-10】输入冒号表达式V=0:0.1:0.5。

在MATLAB命令窗口中输入下面语句并按回车键确认。

>> V=0:0.1:0.5

运行结果如下:

V =
  0  0.1000  0.2000  0.3000  0.4000  0.5000

2.矩阵元素的表示和赋值
矩阵元素的行号和列号称为该元素的下标,是通过“()”中的数字(行、列的标号)来标识的。矩阵元素可以通过其下标来引用,如A(i,j)表示矩阵A第i行第j列的元素。

【例2-11】取矩阵A=[1,2;3,4]第2行全部元素。

在MATLAB命令窗口中输入下面语句并按回车键确认。

>> A=[1,2;3,4];B=[A(2,1),A(2,2)]

运行结果如下:

B =
   3   4

注意:冒号“:”在这里也能发挥很大作用。A(2,:)表示矩阵A第2行全部元素,A(:,2)表示矩阵A第2列全部元素,A(1,1:2)表示矩阵A第1行第1~2列的全部元素。在MATLAB命令窗口中输入下面语句并按回车键确认。

>> A=[1,2;3,4];
B1=A(2,:)
B2=A(:,2)
B3=A(1,1:2)

运行结果如下:

B1 =
   3   4
B2 =
   2
   4
B3 =
   1   2
相关文章
|
16天前
OFDM深入学习及MATLAB仿真(二)
OFDM深入学习及MATLAB仿真
20 1
|
16天前
雷达模糊函数及MATLAB仿真(三)
雷达模糊函数及MATLAB仿真
15 0
|
16天前
雷达模糊函数及MATLAB仿真(一)
雷达模糊函数及MATLAB仿真
25 0
|
16天前
雷达检测及MATLAB仿真(三)
雷达检测及MATLAB仿真
21 0
|
3月前
|
Perl
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
3月前
【数值分析】迭代法求方程的根(附matlab代码)
【数值分析】迭代法求方程的根(附matlab代码)
|
3月前
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
|
3月前
【数值分析】二分法求方程的根(附matlab代码)
【数值分析】二分法求方程的根(附matlab代码)
|
2月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
30 2
|
2月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
36 0