MATLAB函数总结(一)——数值运算和符号运算

系统命令:
clear 后可加变量名,也可以加‘-expect c,a’除了a,c,clear all会清除全部变量,函数,mex文件
cd 切换文件夹
clc 清除命令行窗口
clf 清除当前的figure
close 关闭当前的figure
close all 关闭所有的figure
exit或者quit 退出

关于save函数:
save filename 把当前工作空间的所有变量存到filename.mat二进制文件中,这个文件保存在当前文件夹下
save filename x y z 指定变量名
save filename u v w -append 往进加
save filename u v w -ascii -double 不是二进制了,改成ascii码,而且是16位,但尽量还是用二进制文件,因为ascii可能出错
save('C:\\Users\\hp\\Desktop\\美赛&&MATLAB\\MATLAB程序\\file1.mat','A','B') 保存指定变量在指定位置

load函数:
load filename save是存,load是读,把filename中的变量都读到工作空间中
load filename x y z 指定变量名
load('C:\\Users\\hp\\Desktop\\美赛&&MATLAB\\MATLAB程序\\file1.mat','A','B') 加载指定位置的文件中的指定变量
—————————————————————————————————————————————————
几个特殊变量:
ans 默认变量名
pi π
inf 无穷大
eps 浮点数精度,也就是系统运行时所确定的极小值(=2.2204e-16)
NaN或nan 不定量,如0/0,inf/inf
i或j 虚数,i=j=sqrt(-1)
—————————————————————————————————————————————————
部分常用函数:
abs 绝对值
sqrt 平方根
exp 指数运算
sin 正弦
cos 余弦
asin 反正弦
acos 反余弦
tan 正切
atan 反正切
log 自然对数
log10 常用对数
lcm 最小公倍数
gcd 最大公约数
imag 复数虚部
real 复数实部
conj 复数共轭
—————————————————————————————————————————————————
矩阵:
+,-,*就不说了,简单
\ 左除 eg: A\B=inv(A)*B
/ 右除 eg: A/B=B*inv(A)
A' A的转置
det 计算矩阵的行列式
inv 求逆
rank 求矩阵的秩
eig 求特征值(以向量形式存放)
orth 正交化
poly 求特征多项式
lu 由高斯消元法求得的系数矩阵
qr 正交三角矩阵分解

多项式:
poly2sym

    1. 返回符号多项式的系数,依次输出由高阶到0阶的系数

    2.把系数数组转换为符号多项式

      poly2sym([3 5 4],'x');

      ans =
      3*x^2+5*x+4
+ 加
conv 乘
deconv 除
polyder 微分(即求导)
roots 求根
polyval(p,1) 把x1带入到多项式p中
polyvalm (p,G) x等于矩阵G中各个位置的值,所得结果也是一个与G大小一样且位置一样的矩阵

稀疏矩阵:
sparse 把一个完全矩阵转化为只记录不为零的点(包括位置和值)
full 把一个稀疏矩阵变成完全矩阵

数组:
x=0:10 x=[0 1 2 3 4 5 6 7 8 9 10]
x=0:2:10 x=[0 2 4 6 8 10]
x=linspace(0,2,5) x=[0 0.5000 1.0000 1.5000 2.0000] 按照最后一个参数减一等分

多维矩阵:
reshape 把一个空间形式转换为另外一种(按照原有的排列方式)
size 得到各维的长度
ndims 得到维数,相当于length(size(x))
cat 按照指定的维合成一个新的数组
permute 交换维
ipermute permute的逆,即在经历过给定参数,通过permute变化成这个
shiftdim 循环轮转移动维数,比如现在是1*2*3的三维数组,变换后为2*3*1的三维数组
squeeze 去掉奇异维,即维的长度为一的维
—————————————————————————————————————————————————
符号变量:(如果没有指定自变量,MATLAB会把距离x最近的字母作为自变量,除了i和j,默认为x)
sym 赋予符号变量(eg:f=sym(a*x^2+b*x+c) df=diff(f) (微分)结果:df=2*a*x+b nf=int(f) (积分) 结果:nf=1/3*a*x^3+1/2*b*x^2+c*x)
syms 赋自己
findsym 找符号表达式的符号变量,finfsym(X)返回符号表达式X中所有的变量,findsym(X,n)返回符号表达式X中离x最近的n个变量

极限:
limit(f,x,a) 表示x趋于a时f表达式求极限,当a=0时,可以写成limit(f)
limit(f,x,a,'left') 左极限
limit(f,x,a,'right') 右极限

微分(可求偏导):
diff(f) 对预设独立变量的一阶微分
diff(f,t) 对独立变量t的一阶微分
diff(f,n) 对预设变量的n阶微分
diff(f,t,n) 对独立变量t的n阶微分

积分:
int(f) 对预设独立变量的积分值
int(f,t) 对独立变量t的积分值
int(f,'t') 对独立变数t的积分值
int(f,a,b) 对预设独立变量在区间[a,b]上的的积分值,a,b为数值
int(f,t,a,b) 对独立变量t在区间[a,b]上的的积分值,a,b为数值
int(f,'m','n') 对预设独立变量在区间[m,n]上的的积分值,m,n为符号

级数:
symsum(s,v,a,b) s: 通项 v:自变量 a,b:区间[a,b]
toylor(F,v,n) 求F对自变量v的泰勒级数展开至n阶

代数方程:
solve(f) 解符号方程式f ps:如果f就是一个式子,即函数的形式,它会给出通解;如果f中有等号,即一个方程,会直接给出解
solve(f,a) 指定求解的变量是a
solve(f1,f2,……,fn) 求解方程组,返回一个数组

常微分方程:
desolve('equation','condition') 求解常微分方程,equation代表常微分方程式,condition代表初始条件(可以是多个,用“,”隔开),若没有初始条件,则给出通解

常用符号函数:
运算函数:
symadd 符号加法
symsub 符号减法
symmul 符号乘法
symdiv 符号除法
sympow 符号幂次运算
numden 从有理数形式转换为分数形式
numeric 以数值形式表示
compose(f(x),g(x)) 将f(x)和g(x)复合成f(g(x))形式
finverse 求反函数
sym2poly 提取多项式系数并以向量形式展示
poly2sym 将多项式系数向量转化为符号多项式形式

化简函数(simple!!!):
collect 相同幂次合并
expand 将表达式展开(因式分解的逆运算)
factor 因式分解
simplify 利用代数上的函数规则对表达式进行化简
simple 尽可能化简,以最少的字表达出来
[r,how]=simple(s) 化简s,r是符号变量,how是用了哪种方法

符号与数值的格式转换:sym(pression,'参数')
参数为f:返回浮点值
参数为r:返回有理数(默认)
参数为e:返回带有机器浮点误差的有理值
参数为d:返回十进制值

设定变量类型:
x=sym('x','real') 设定x类型为实数
x=sym('x','unreal') 取消设定
sym x y real 同时指定多个变量为实数

表达式替换:
subs(s) 用赋值表达式中给定的值替换符号表达式s中的所有变量(赋初始值)
subs(s,new) 用new替换s中所有的自由变量
subs(s,old,new) 用new替换old

任意精度计算:
digits(n) 指定有效位数为n位
vpa(S,n) 将S表示为n位有效数字的形式,n缺省时,以默认显示

符号积分变换:
傅里叶变换:
F=fourier(f) 求f的傅里叶变换,默认是自变量为x,返回结果默认为w的函数,即F(w),若f自变量为w,则返回t的函数
F=fourier(f,v) w->v
F=fourier(f,u,v) x->u; w->v
傅里叶反变换:ifourier

拉普拉斯变换:
L=laplace(F) 求F的拉普拉斯变换,默认是自变量为t,返回结果默认为s的函数,即L(s),若F自变量为s,则返回t的函数
L=laplace(F,t) s->t
L=laplace(F,w,z) s->z; t->w
拉普拉斯反变换:ilaplace

Z变换:
F=ztrans(f) 求f的Z变换,默认是自变量为n,返回结果默认为z的函数,即F(z)
F=ztrans(f,w) F(w)
F=ztrans(f,k,w) 自变量为k
反Z变换:iztrans

猜你喜欢

转载自www.cnblogs.com/bwjblogs/p/11900479.html
今日推荐