大家好,又见面了,我是你们的朋友全栈君。
MATLAB01:基本的数学运算与矩阵运算
MATLAB基本语法变量变量名保留变量不适合做变量名变量不应当覆盖内置函数变量类型数字型变量的显示格式MATLAB命令行使用MATLAB进行数字运算使用MATLAB计算数学表达式MATLAB内置的数学函数使用MATLAB进行矩阵运算定义矩阵向终端输入矩阵使用冒号运算符创建向量定义特殊矩阵矩阵的索引矩阵的操作操作矩阵的运算符操作矩阵的函数
MATLAB基本语法
变量
- MATLAB中的变量不需要声明.
- 使用
=
为变量赋值
变量名
- 与大多数编程语言相同,MATLAB中的变量名是大小写敏感的.
- 变量名只能由[
0~9
,a~z
,A~z
,_
]组成,且变量名不能以数字开头.
保留变量不适合做变量名
MATLAB中有一些变量有其具体意义,不适合用作变量名.
除此以外,使用iskeyword
可以查看MATLAB语言所有的关键字,这些关键字也不允许被用作变量名.
变量不应当覆盖内置函数
在MATLAB中,变量的调用优先级(calling priority)高于函数,因此变量名不应该覆盖内置函数.
MATLAB的调用优先级
代码语言:javascript复制cos='This string.';
cos(8) % 对字符串进行索引取值,得到'r'
若某函数被变量名所覆盖,则调用clear
可以取消绑定在该函数名上的变量名
clear cos % 清除绑定在cos上的变量
cos(8) % 调用内置余弦函数运算得到-0.1455
clear
是一个比较危险的命令,因为该命令后若不加参数,则表示清除当前工作区内的所有变量.
变量类型
MATLAB中的变量类型有: logical
,char
,numeric
,cell
,struct
以及由他们组成的数组或矩阵.
MATLAB中的变量类型
数字型变量的显示格式
我们直接定义的数字型变量,默认是以double
形式存储的.
我们可以通过format
改变数字型变量的显示格式.
MATLAB命令行
- 使用行尾
;
抑制输出: 在一行命令后使用;
抑制输出,否则运算结果将被显示在终端上. - 其他实用的命令:
使用MATLAB进行数字运算
使用MATLAB计算数学表达式
- MATLAB常见运算符有:
-
,*
,/
,^
. - 数学表达式被计算后,其值被存入变量
ans
. - 运算的优先级规则:
- 同等优先级下从左向右运算.
- 优先级顺序(从高到低)
- 括号`()`
- 乘方`^`
- 乘除法`*`,`/`
- 加减法` `,`-`
下面例子演示了数学表达式求值:
MATLAB内置的数学函数
- MATLAB内置的算数运算函数
- 加: ` `,`sum`,`cumsum`,`movsum`
- 减: `-`,`diff`
- 乘: `.`,``,`prod`,`cumprod`
- 除: `./`,`.`,`/`,“
- 乘方: `.^`,`^`
- 基本运算:
- 取模运算: `mod`,`rem`,`idivide`,`ceil`,`fix`,`floor`,`round`
- MATLAB内置的三角运算函数
- 正弦: `sin`,`sind`,`sinpi`,`asin`,`asind`,`sinh`,`asinh`
- 余弦: `cos`,`cosd`,`cospi`,`acos`,`acosd`,`cosh`,`acosh`
- 正切: `tan`,`tand`,`atan`,`atand`,`atan2`,`atan2d`,`tanh`,`atanh`
- 余割: `csc`,`cscd`,`acsc`,`acscd`,`csch`,`acsch`
- 正割: `sec`,`secd`,`asec`,`asecd`,`sech`,`asech`
- 余切: `cot`,`cotd`,`acot`,`acotd`,`coth`,`acoth`
- 斜边: `hypot`
- 转换: `deg2rad`,`rad2deg`,`cart2pol`,`cart2sph`,`pol2cart`,`sph2cart`
- MATLAB内置的指数对数函数:
exp
,expm1
,log
,log10
,log1p
,log2
,nextpow2
,nthroot
,pow2
,reallog
,realpow
,realsqrt
,sqrt
- MATLAB内置的复函数:
abs
,angle
,complex
,conj
,cplxpair
,i
,imag
,isreal
,j
,real
,sign
,unwrap
使用MATLAB进行矩阵运算
定义矩阵
向终端输入矩阵
在MATLAB中,使用[]
将待输入的矩阵内容括起来,使用空格或逗号,
分隔行内变量,使用;
分隔每一行.
下面例子演示了矩阵的定义:
使用冒号运算符创建向量
使用冒号运算符:
可以创建一个长向量,其语法如下:
下面例子演示了冒号运算符的使用:
定义特殊矩阵
下面命令可以定义特殊矩阵
矩阵的索引
- MATLAB中的矩阵是以列先序存储的.且索引下标从1开始.
- 矩阵有两种索引方式: 按一维索引和按二维索引.对于一个一般的矩阵,其索引顺序如下:
- 矩阵的索引可以使用冒号
:
,表示选取所有行或所有列. - 矩阵的索引可以是一个或两个向量,表示选中向量内的所有行或所有列.
下面例子演示了矩阵索引的规则:
矩阵的操作
操作矩阵的运算符
操作矩阵的函数
下面对矩阵
进行操作以演示操作矩阵的常见函数
对于上面这些函数,除第一个参数以外,其它参数都是可选的.