Matlab学习记录,函数

Matlab中的内建函数

matlab提供了许多内建的数学函数,如三角函数、对数函数等,可以方便用户直接调用进行计算。调用的格式为:

r=MathFun(x)

其中r为函数计算结果,MathFun为函数名,x为输入值。一个函数可以直接调用另一个函数。

Matlab中的内建函数很多,常用的列在下表中:

函数符号名称函数符号名称
sin(x)正弦函数asin(x)反正弦函数
cos(x)余弦函数acos(x)反余弦函数
tan(x)正切函数atan(x)反正切函数
cot(x)余切函数acot(x)反余切函数
sec(x)正割函数asec(x)反正割函数
csc(x)余割函数acsc(x)反余割函数
sinh(x)双曲正弦函数coth(x)双曲余弦函数
cosh(x)双曲余弦函数cech(x)双曲正割函数
tanh(x)双曲正切函数ctanh(x)双曲余割函数
abs(x)绝对值sum(x)求和
max(x)最大值min(x)最小值
sqrt(x)开平方exp(x)以e为底的指数
log(x)自然对数log10(x)以10为底的对数
sign(x)符号函数mod(x)两整数相除的余数
conj(x)求复数的共轭imag(x)取复数的虚部
real(x)取复数的实部realmin最小正数
i,j虚数单位piπ
eps计算机的最小正数realmax最大正数
break退出循环Inf inf无穷大
end循环语句结束NaN非数
nargin输入参数个数nargout输出参数个数
varargin变长度输入宗量varargout变长度输出宗量
round(x)四舍五入到最近整数ceil(x)右取整
fix(x)最接近0的整数floor(x)左取整

Matlab自定义函数

Matlab有多种定义函数的方法,常用的有3种:

  • 用function构造函数
  • 用inline构造函数
  • 用syms构造符号函数

用function构造函数

此种方法构造函数,需要用.m文件保存。函数名应该与文件名一致,用户在调用的时候就像调用内建函数一样调用就可以了。

构造函数的格式为:

[输出实参表]=函数名(输入实参表)

注释部分

函数体语句

return 语句(可以有可以没有)

例:

function z=hello(x,y)
z=(x+y)/2;

>> a=[1,2,3];
>> b=[4,5,6];
>> c=hello(a,b)

c =

    2.5000    3.5000    4.5000

>> feval(\'hello\',a,b)

ans =

    2.5000    3.5000    4.5000

用inline构造函数

可以在命令窗口直接利用inline函数定义函数。如下:

 >> myfun=inline(\'(x+y)/2\',\'x\',\'y\');
>> a=[1 2 3];
>> b=[4 5 6];
>> c=myfun(a,b)

c =

    2.5000    3.5000    4.5000


>> feval(myfun,a,b)

ans =

    2.5000    3.5000    4.5000

用syms构造符号函数

符号函数通常用syms或sym进行构造。

 >> syms x y;
>> myfun=(x+y)/2

myfun =

x/2 + y/2

>> subs(myfun,{x,y},{a,b})

ans =

[ 5/2, 7/2, 9/2]

syms函数只能用subs进行求解。


多项式相关函数

Matlab中关于多项式计算的函数很多,主要有:

  • polyval(x)
  • conv(x)

polyval(x)

调用格式为:

y=polyval(a,x0)

多项式系数向量按照降序排列

>> a=[1,0,3,-1,2];
>> polyval(a,1)

ans =

     5

conv(x)

用来计算两个多项式的乘积(多项式卷积函数)。调用格式为:

conv(A,B)

>> a=[1,0,3,-1,2];
>> b=[6,5,4,1];
>> conv(a,b)

ans =

     6     5    22    10    19     9     7     2

向量和矩阵运算函数

向量运算中的常用函数

函数名调用形式函数意义
linspacex=linspace(a,b,n)将a,b分割成n分,生成向量
zerosx=zeros(n,m)昌盛n行m列的零矩阵
lengthlen=length(x)返回响亮的长度或者矩阵的最大维数
sizesize(x)返回矩阵的行数和列数
+x+y同维向量相加
*c*x标量和向量相乘
dotdot(x,y)向量点积
crosscross(x,y)向量叉积

矩阵的基本运算

矩阵元素提取

矩阵元素提取的形式为:A(vr,vc),如果用冒号,表示全部行或列。也可以分片取。如:

A(1,3) 表示矩阵的第1行,第3列这个元素
A(1:3,[3 5 7])表示取矩阵第1,2,3行和第3,5,7列的元素
A(:,3) 表示取第3列的所有元素
特殊矩阵的创建函数
函数功能
ones(n)创建n阶矩阵
ones(m,n)创建m行n列的矩阵
ones(m,n,p)创建m行n列p页的三维矩阵
eye(n)创建n阶单位阵
zeros(m,n,p)创建全为0的矩阵
rand(m,n,p)创建均匀分布的矩阵
randn(m,n,p)创建正态分布的矩阵
pascal(n)创建帕斯卡矩阵
magic(n)创建魔术矩阵
构造矩阵

构造矩阵是指由已有的矩阵,通过矩阵运算来得到新的矩阵。主要有:矩阵转置、矩阵分片提取、矩阵合并(列扩展)、矩阵合并(行扩展)、对角化等手段。

注意:矩阵中的元素可以是整数、浮点数、复数。

矩阵运算、矩阵操作函数
操作符含义操作符含义
A+B矩阵相加A-B矩阵减法
A*B矩阵乘法A.*B矩阵点乘
A/B矩阵右除A./B矩阵右点除
A\B矩阵左除A.\B矩阵左点除
A^n矩阵乘方A.^n矩阵元素乘方
rot90(A)矩阵旋转90°fliplr(A)矩阵左右翻折
flipud(A)矩阵上下翻折reshape(A)保持元素不变改变矩阵的维数
norm(A)向量或矩阵的范数rank(A)矩阵的秩
det(A)矩阵的行列式trace(A)矩阵的迹
inv(A)方阵的逆矩阵eig(A)特征值与特征向量
size(A)矩阵的阶数cond(A)矩阵的条件数
lu(A)矩阵的LU分解qr(A)矩阵的QR分解