Matlab学习笔记,二

二、MATLAB基础知识

(二)数值、变量和表达式

  • 命名规则:
    • 变量名对大小写敏感,即区分大小写
    • 变量名必须以字母开头,后面可以采用数字、下划线和字母,但不能使用空格、标点符号和运算符
    • 变量名最长可以采用63个字符,之后的字符串都将被忽略
    • 关键字(或保留字)不能作为变量名称,
      • 可以通过iskeyword命令来查询保留字(keywords
      • 通过isvarname来查询所定义的变量名是否位关键字
  • 表2-6 预定义变量
预定义变量变量的意义
ans默认的计算结果变量名,answers的缩写形式
beep计算机自动发出声音
pi圆周率π
eps浮点数的精度(2.2204e—016),最小数值,和数值相加后,产生大于该数值的最小的那个数
inf无穷大数的表示(1/0产生)
NaN书之不能确定,不是一个数(Not a Number),通常由0/0、∞/∞等不能确定数值的时候产生
i或j虚数的单位,即 i=j=√-1
nargin在调用函数时,函数变量的输入个数
nargout函数调用时,由函数输出的变量个数
realmin可用的最小正实数
realmax可用的最大正实数
bitmax可用的最大正整数(用双精度来表示,9.0072e+015)
varargin函数输入的变量中,可变变量的输入个数
varargout可变的函数输出个数
    • 如果用户对预定义的特殊变量赋值,那么该特殊变量的数值将会被临时覆盖
    • 运算过程中,被0除不会导致程序的终止,系统会根据情况给出警告信息,并相应的用Inf或NaN来表示这些计算结果

(三)数值数据类型

  • 整数
    • 表2-7 整数类型
数据类型说明
uint88位无符号整数,数值范围为0~255(0~28-1)
int88位有符号整数,数值范围为-128~127(-27~27-1)
uint1616位无符号整数,数值范围为0~65535(0~216-1)
int1616位有符号整数,数值范围为-32768~32767(-215~215-1)
uint3232位无符号整数,数值范围为0~4294967295(0~232-1)
int3232位有符号整数,数值范围为-2147483648~2147483647(-231~231-1)
uint6464位无符号整数,数值范围为0~18446744073709551615(0~264-1)
int6464位有符号整数,数值范围为-9223372036854775808~9223372036854775807(-263~263-1)
    • 上表定义的整数数据类型不同,但是具有相同的性质,这些数据都可以通过函数 intmax 和 intmin 来查询此种数据类型的上下限
    • 整型数据的定义(e_two_4.m
    • 整型数据数据运算(e_two_5.m
      • 进行除法运算时,先将向量中的整数元素作为双精度类型的数据进行计算,然后根据四舍五入原则得到整型数据相除的结果
    • 整型数据的转化(e_two_6.m
      • 不同类型的整型数据之间不能进行数学运算;支持双精度标量和整型数据之间的数学运算(原因在于MATLAB先将双精度类型的标量数据转化成整型数据再进行计算)
    • 整型数据运算的溢出(e_two_7.m
      • 当运算过程中产生溢出问题时,MATLAB采用饱和处理,即将计算结果设定为溢出方向的上下限数值
  • 浮点数
    • 默认类型数据:双精度类型(double)
    • 为了节省存储空间,支持单精度类型(single)的数组
    • 单精度和双精度类型的取值范围可以选择函数realmin、realmax来得到。单精度类型浮点数的精度可以通过函数eps来得到。(e_two_8.m
    • 单精度数据创建及混合运算(e_two_9.m
    • 存在特殊的浮点数Inf(无穷大)和NaN(被零除),特殊的双精度数(e_two_10.m
  • 整型浮点数间的操作函数
    • 表2-8 常见的数值数据函数(表中,type为numeric、integer、float及其它类型的数据类型)
函数名称描述
double创建或转化为双精度类型的数据
single创建或转化为单精度数据
int8,int16,int32,int64创建或转化为有符号的整型数据
uint8,unit16,unit32,unit64创建或转化为无符号的整型数据
isnumeric数据类型判断函数,如果为整型数据或浮点数,那么函数返回true
isinteger整型数据判断函数,如果为整型数据,那么返回true
isfloat浮点数类型判断函数,如果为单精度或双精度数据,则返回true
isa(x, \'type\')判断x是否为指定的type类型数据,若是则返回true
cast(x, \'type\')将x的数据类型转化为type类型数据
intmax(\'type\')返回整型数据的最大数值
intmin(\'type\')返回整型数据的最小数值
realmax(\'type\')返回浮点数的最大数值
realmin(\'type\')返回浮点数的最小数值
eps(\'type\')返回type类型数据的eps数值(浮点数值,即精度)
eps(\'x\')x的eps数值
  • 复数
    • 在matlab中能够直接在复数域上进行运算,采用提供的命令进行复数的极坐标形式和直角坐标形式之间的转化
    • 欧拉公式
real(z)计算复数的实部z=rcosθ
imag(z)计算复数的虚部z=rsinθ
abs(z)计算复数的模√(a2+b2)
angle(z)以弧度为单位给出复数的幅角arctan(b/a)
    • 复数的表达和书写(e_two_11.m),复数可通过以下几种方式来进行定义:
      • 直接定义法:根据复数经典的直角坐标和极坐标方式来进行定义
      • 通过函数complex来进行定义
      • 在数值运算过程中产生复数
      • 在定义过程中,如果复数单位 i 和 j 直接和表达式相连接,则不能够进行复数的定义,只有通过相乘方式才能够进行定义
      • 复数通过“数值标量”的方式进行定义时不适用于“数值矩阵”形式(尽量少用)
    • 复数的实部、虚部、模和幅角的计算(e_two_12.m
    • 求解复数的根,并将这些根用图形表达(e_two_13.m
  • 常见的数学函数
    • MATLAB提供了大量的数学函数,角度都是用弧度来表示
    • 表2-9 三角函数表
三角函数名说明
acos反余弦函数
acosh反双曲余弦函数
acot反余切函数
acoth反双曲余切函数
acsc反余割函数
asec反正割函数
asin反正弦函数
asinh反双曲正弦函数
atan反正切函数
atan24个象限内反正切
atanh反双曲正切函数
cos余弦函数
cosh双曲余弦函数
cot余切函数
coth双曲余切函数
csc余割函数
csch双曲余割函数
sec正割函数
sech双曲正割函数
sin正弦函数
sinh双曲正弦函数
tan正切函数
tanh双曲正切函数
    • 表2-10 指数函数表
指数函数名说明
^乘方
exp
ln自然对数
lg以10为底的对数
lb以2为底的对数,分割浮点数
pow2以2为底的幂,比例浮点数
sqrt平方根
nextpow2最小的P,是的2P不小于给定的N
    • 表2-11 复数函数表
复数函数名说明
abs绝对值或复数的模
angle用弧度表示的相角度
conj共轭复数函数
imag虚部
real实部
unwrap相角展开
isreal如果是实数,则返回true
cplxpair将矢量按共轭复数对重新排列
complex由实部和虚部组成复数
    • 表2-12 舍入和余数函数表
舍入和余数函数名说明
fix向0舍入
floor向负无穷舍入
ceil向正无穷舍入
round向最接近的整数舍入
mod模数取余
rem对数法取余数
sign符号函数
    • 表2-13 坐标变换函数
坐标变换函数名说明
cart2sph笛卡尔坐标到球坐标变换函数
cartpol笛卡尔坐标到柱坐标或极坐标变换函数
pol2cart柱坐标或极坐标到球坐标变换函数
sph2cart球坐标到笛卡尔坐标变换函数
    • 表2-14 数理函数表
数理函数名说明
factor质数因子
isprime如果是质数,则返回true
primes产生质数列数
gcd最大公因数
lcm最小公倍数
rat有理逼近
rats有理数输出
perms所有可能的组合
nchoosek从N个元素中一次取K个的所有组合数
    • 表2-15 专用函数表
专用函数名说明
airyairy函数
besselj第一类贝赛尔函数
bessely第二类贝塞尔函数
besselh第三类贝塞尔函数
besseli经过修正后的第一类贝塞尔函数
besselk经过修正后的第二类贝赛尔函数
betabeta函数
betainc不完全beta函数
betalnbeta函数的对数
ellipjJacobi椭圆函数
ellipke完全椭圆积分
erf误差函数
erfc互补误差函数
erfinv比例互补误差函数
expint误差函数的逆函数
gammagamma函数
gammainc不完全gamma函数
gammalngamma函数的对数
legendrelegendre伴随函数
cross向量叉乘
dot向量点乘