一 MATLAB01:基本的数学运算与矩阵运算
1 MATLAB基本语法
1.1 变量
- MATLAB中的变量不需要声明.
- 使用
=
为变量赋值
1.1.1 变量名
- 与大多数编程语言相同,MATLAB中的变量名是大小写敏感的.
- 变量名只能由
[0~9,a~z,A~z,_]
组成,且变量名不能以数字开头.
1.1.1.1 保留变量不适合做变量名
MATLAB中有一些变量有其具体意义,不适合用作变量名.
变量 | 意义 |
---|---|
ans | 上一句的运算的结果 |
i 和j | 复数算子 |
Inf | 无穷 ∞ ∞ ∞ |
eps | 浮点相对精度,即1.0到下一个浮点数之间的距离(值为2.2204e-16) |
NaN | 非数字 |
pi | 圆周率 |
除此以外,使用iskeyword
命令可以查看MATLAB语言所有的关键字,这些关键字也不允许被用作变量名.
1.1.1.2 变量名不应当覆盖内置函数名
在MATLAB中,变量的调用优先级(calling priority)高于函数,因此变量名不应该覆盖内置函数.
> cos='This string.';
> cos(8) %对字符串进行索引取值,得到'r'
若某函数被变量名所覆盖,则调用clear <变量名>
可以取消绑定在该函数名上的变量名
clear cos % 清除绑定在cos上的变量
cos(8) % 调用内置余弦函数运算得到-0.1455
clear
是一个比较危险的命令,因为该命令后若不加参数,则表示清除当前工作区内的所有变量.
1.1.2 变量类型
MATLAB中的变量类型有: logical
,char
,numeric
,cell
,struct
以及由他们组成的数组或矩阵.
1.1.2.1数字型变量的显示格式
我们直接定义的数字型变量,默认是以double
形式存储的.
我们可以通过format <显示格式>
改变数字型变量的显示格式.
显示格式 | 说明 | 例子 |
---|---|---|
short | 短定点格式.显示小数点后4位 | 3.1416 |
long | 长定点格式.对double 类型变量显示小数点后15位,对float 类型变量显示小数点后7位. | 3.141592653589793 |
shortE | 短科学计数法,显示小数点后4位.并带有科学计数法标记. | 3.1416e+00 |
longE | 长科学计数法.对double 类型变量显示小数点后15位,对float 类型变量显示小数点后7位.并带有科学计数法标记. | 3.141592653589793e+00 |
bank | 银行格式.显示小数点后2位. | 3.14 |
hex | 十六进制格式. | 400921fb54442d18 |
rat | 比例格式 | 355/113 |
1.2 MATLAB命令行
- 使用行尾
;
抑制输出: 在一行命令后使用;
抑制输出,否则运算结果将被显示在终端上. - 其他实用的命令:
命令 | 作用 |
---|---|
clc | 清除终端的输出 |
clear | 清除当前工作区内所有变量 |
who | 以简略格式显示工作区内所有变量 |
whos | 以复杂格式显示工作区内所有变量 |
2 使用MATLAB进行数字运算
2.1 使用MATLAB计算数学表达式
- MATLAB常见运算符有:
+
,-
,*
,/
,^
. - 数学表达式被计算后,其值被存入变量
ans
. - 运算的优先级规则:
- 同等优先级下从左向右运算.
- 优先级顺序(从高到低)
- 括号
()
- 乘方
^
- 乘除法
*
,/
- 加减法
+
,-
下面例子演示了数学表达式求值:
2.2 MATLAB内置的数学函数
2.2.1MATLAB内置的算数运算函数
- 基本运算: 加:
+
,sum
,cumsum
,movsum
- 减:
-
,diff
- 乘:
.*
,*
,prod
,cumprod
- 除:
./
,.\
,/
,\
- 乘方:
.^
,^
- 减:
- 取模运算(取模运算是求两个数相除的余数):
mod
,rem
,idivide
,ceil
,fix
,floor
,round
2.2.2MATLAB内置的三角运算函数
- 正弦:
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
- 斜边(C = sqrt(abs(A).^2 + abs(B).^2) 求第三边):
hypot
- 转换:
deg2rad
,rad2deg
,cart2pol
,cart2sph
,pol2cart
,sph2cart
2.2.3 MATLAB内置的指数对数函数:
exp
,expm1
,log
,log10
,log1p
,log2
,nextpow2
,nthroot
,pow2
,reallog
,realpow
,realsqrt
,sqrt
exp:
expm1:
log:
log10
log1p:
nextpow2:
2.2.4 MATLAB内置的复函数:
abs
,angle
,complex
,conj
,cplxpair
,i
,imag
,isreal
,j
,real
,sign
,unwrap
3 使用MATLAB进行矩阵运算
3.1 定义矩阵
3.1.1 向终端输入矩阵
在MATLAB中,使用[]
将待输入的矩阵内容括起来,使用空格或逗号,分隔行内变量,使用;分隔每一行.
下面例子演示了矩阵的定义:
3.1.2 使用冒号运算符创建向量
使用冒号运算符:可以创建一个长向量,其语法如下:
下面例子演示了冒号运算符的使用:
3.1.3 定义特殊矩阵
下列命令可以定义特殊矩阵
3.2 矩阵的索引
- MATLAB中的矩阵是以列先序存储的.且索引下标从1开始.
- 矩阵有两种索引方式: 按一维索引和按二维索引.对于一个一般的矩阵,其索引顺序如下:
- 矩阵的索引可以使用冒号:,表示选取所有行或所有列.
- 矩阵的索引可以是一个或两个向量,表示选中向量内的所有行或所有列.
下面例子演示了矩阵索引的规则:
3.3 矩阵的操作
3.3.1 操作矩阵的运算符
3.3.2 操作矩阵的函数
下面对矩阵
进行操作以演示操作矩阵的常见函数
对于上面这些函数,除第一个参数以外,其它参数都是可选的.
博文原址:https://blog.csdn.net/ncepu_Chen/article/details/103034286
A’ 为转制, 把矩阵的行与列相互转换
inv:逆矩阵
det:Matlab中,该函数用于求一个方阵(square matrix)的行列式
diff:求导,相关介绍:https://blog.csdn.net/u013018721/article/details/37766187
syms:定义符号变量的函数
C(:,1) :表示全要,这表示第一列
C(1,:): 表示第一行
eye(3):表示单位矩阵
rand(3):服从0-1分布的矩阵
mean:表示均值
B(😃: 将矩阵转换为列矩阵
reshape(a, 3, 3):将矩阵A转换为3x3矩阵
最小二乘解
a = [1 1; 1 -1; 1 2]
b = [2;0;4]
x = a\b
x = 1.1429 ; 1.28357
定义匿名函数:
f = @(x)log(ans) - sin(ans)
vpa
limit
写的太好了,小刘转载。