目录
变量
矩阵运算符
数组运算符
函数
表达式示例
变量
与大多数其他编程语言一样,MATLAB® 语言提供数学表达式,但与大多数编程语言不同的是,这些表达式涉及整个矩阵。
MATLAB 不需要任何类型声明或维度说明。当 MATLAB 遇到新的变量名称时,它会自动创建变量,并分配适当大小的存储。如果此变量已存在,MATLAB 会更改其内容,并根据需要分配新存储。例如,
num_students = 25
创建一个名为 num_students
的 1×1 矩阵,并将值 25 存储在该矩阵的单一元素中。要查看分配给任何变量的矩阵,只需输入变量名称即可。
变量名称包括一个字母,后面可以跟随任意数目的字母、数字或下划线。MATLAB 区分大小写;它可以区分大写和小写字母。A
和 a
不是相同变量。
尽管变量名称可以为任意长度,MATLAB 仅使用名称的前 N
个字符(其中 N
是函数 namelengthmax
返回的数字),并忽略其余字符。因此,很重要的一点是,应使每个变量名称的前 N
个字符保持唯一,以便 MATLAB 能够区分变量。
N = namelengthmax
N =
63
矩阵运算符
表达式使用大家熟悉的算术运算符和优先法则。
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
\ | 左除 |
^ | 幂 |
' | 复共轭转置 |
( ) | 指定计算顺序 |
数组运算符
如果矩阵不用于线性代数运算,则成为二维数值数组。数组的算术运算按元素执行。这意味着,加法和减法运算对数组和矩阵都是相同的,但乘法运算不相同。MATLAB 的乘法数组运算表示法中包含点,也就是小数点。
运算符列表包括
+ | 加法 |
- | 减法 |
.* | 逐元素乘法 |
./ | 逐元素除法 |
.\ | 逐元素左除 |
.^ | 逐元素幂 |
.' | 非共轭数组转置 |
如果使用数组乘法将丢勒的幻方矩阵自乘
A.*A
则会生成一个数组,该数组包含介于 1 至 16 之间的整数的平方,并且以不常见的顺序排列:
ans =
256 9 4 169
25 100 121 64
81 36 49 144
16 225 196 1
构建表
数组运算对构建表非常有用。假定 n
为列向量
n = (0:9)';
然后,
pows = [n n.^2 2.^n]
构建一个平方和 2 次幂的表:
pows =
0 0 1
1 1 2
2 4 4
3 9 8
4 16 16
5 25 32
6 36 64
7 49 128
8 64 256
9 81 512
初等数学函数逐元素处理数组元素。因此
format short g
x = (1:0.1:2)';
logs = [x log10(x)]
构建一个对数表。
logs =
1.0 0
1.1 0.04139
1.2 0.07918
1.3 0.11394
1.4 0.14613
1.5 0.17609
1.6 0.20412
1.7 0.23045
1.8 0.25527
1.9 0.27875
2.0 0.30103
函数
MATLAB 提供了大量标准初等数学函数,包括 abs
、sqrt
、exp
和 sin
。生成负数的平方根或对数不会导致错误;系统会自动生成相应的复数结果。MATLAB 还提供了许多其他高等数学函数,包括贝塞尔函数和 gamma 函数。其中的大多数函数都接受复数参数。有关初等数学函数的列表,请键入
help elfun
有关更多高等数学函数和矩阵函数的列表,请键入
help specfun
help elmat
某些函数(例如,sqrt
和 sin
)是内置函数。内置函数是 MATLAB 核心的一部分,因此这些函数非常高效,但计算详细信息是不可访问的。其他函数使用 MATLAB 编程语言实现,因此可以访问其计算详细信息。
内置函数与其他函数之间存在一些差异。例如,对于内置函数,您看不到代码。对于其他函数,您可以看到代码,甚至可以根据需要修改代码。
一些特殊函数提供了有用的常量值。
pi | 3.14159265... |
i | 虚数单位 G−1 |
j | 与 i 相同 |
eps | 浮点相对精度 ε=2−52 |
realmin | 最小浮点数 2−1022 |
realmax | 最大浮点数 (2−ε)21023 |
Inf | 无穷大 |
NaN | 非数字 |
通过将非零值除以零或计算明确定义的溢出(即超过 realmax
)的数学表达式,会生成无穷大。通过尝试计算 0/0
或 Inf
-Inf
等没有明确定义的数值的表达式,会生成非数字。
函数名称不会保留。您可以使用如下新变量覆盖任何函数名称
eps = 1.e-6
并在后续计算中使用该值。可以使用以下命令恢复原始函数
clear eps
表达式示例
您已经学习了 MATLAB 表达式的几个示例。下面是一些其他示例及生成的值:
rho = (1+sqrt(5))/2
rho =
1.6180
a = abs(3+4i)
a =
5
z = sqrt(besselk(4/3,rho-i))
z =
0.3730+ 0.3214i
huge = exp(log(realmax))
huge =
1.7977e+308
toobig = pi*huge
toobig =
Inf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)