matlab入门命令分类集合——适合matlab初学者记忆整理

Matlab数学应用基础函数

本文收录了常用的matlab命令,适合matlab初学者分类记忆,加深学习印象。

注:本文目的在于为matlab初学者提供命令的分类记忆和参考,不适合小白直接阅读学习。

Contents

目录

Matlab数学应用基础函数

Contents

1.数字格式

2.数组,矩阵

2.1.若a为一数组

2.2.矩阵数值运算

3.向量与多项式的数值运算

3.1.多项式p(x)=a0*x^n+a1*x^(n-1)+...+an-1*x+an

3.2.匿名函数建立及其运算:可建立匿名函数f=@(x1,x2,...,xn)f(x1,x2,...,xn);

4.符号运算

4.1.符号变量的建立:syms x1 x2 ... xn %声明变量x1,x2,...,xn

4.2.方程组的求解:若有方程组:f1=0;f2=0;...;fn=0;方程中含有n个自变量x1,x2,...xn,令:

4.3.符号表达式的化简与替换

5.图形绘制

5.1.对于二维数值运算的绘图

5.2.对于符号及匿名函数的运算

5.3.三维图形绘制

5.3.1.三维符号函数及匿名函数运算的绘制:

5.3.1.三维数值运算曲面图的绘制:

6.程序输入输出与设计

6.1.选择语句

6.2.循环语句


1.数字格式

format %十进制短格式,小数点后4位
format short %十进制短格式,小数点后4位
format long %小数点后15位
format shortE %短科学计数法,小数点后4位
inf %无穷大数
eps %浮点数的精度,运算时计算机的最小值
Nan%或nan 不定量
abs(x) %数值x的绝对值
vpa(x,n) %显示数值x,整数和小数部分一共n位
fix(x) %数值x向0取整
round(x) %数值x四舍五入取整
ceil(x) %数值x向右取整
floor(x) %数值x向左取整
gcd(x,y) %数值x,y的最大公约数
lcm(x,y) %数值x,y的最大公倍数
mod(x,y) %数值x/y的余数
imag(x) %复数x的虚数
real(x) %复数x的实数
angle(x) %复数x的相角
conj(x) %复数x的共轭
b=sym('n'); %将数值n转换为符号形式,返回b
upper('c')%将小写字母c转化为大写字母C
lower('C')%将大写字母C转化为小写字母c
%逻辑运算介绍:与运算 a&b;或运算 a|b;非运算b=~a;异或运算 xor(a,b)

2.数组,矩阵

2.1.若a为一数组

sort(a) %a元素按从小到大排序,若a为矩阵,则a按列升序排序
sort(a,'descend') %a元素按从大到小排序
norm(a) %向量a的2-范数(向量元素绝对值的平方和的平方根,a为矩阵时,为a'*a矩阵最大特征值的平方根)
norm(a,1); %计算向量a的1-范数(向量元素绝对值之和,a为矩阵时,为矩阵列元素绝对值之和的最大值)
norm(a,inf); %计算向量a的无穷大范数(所有向量元素绝对值中的最大值,a为矩阵时,为矩阵行元素绝对值之和的最大值)
mean(a); %计算向量a的算数平均值
median(a); %计算向量a的中值
sum(a) %a元素求和,若a为矩阵,则a按列求和
prod(a) %a元素求积,若a为矩阵,则a按列求积
cumsum(a) %a元素求累加和,若a为矩阵,则a按列求累加和
cumprod(a) %a元素求累乘积,若a为矩阵,则a按列求累乘积
std(a) %a元素求标准差,若a为矩阵,则a按列求标准差
std(a,1,1) %a元素求总体标准差,若a为矩阵,则a按列求总体标准差
std(a,1,2) %a元素求总体标准差,若a为矩阵,则a按行求总体标准差
corrcoef(a) %返回a的相关系数矩阵,第i行第j列元素为a中第i列与第j列相关系数
length(a) %a中元素个数
max(a) %返回a中最大元素;若a为m×n矩阵(n>1),则返回a每列向量中最大的元素,组成一个行向量
[y,k]=max(a); %返回a中最大元素y及其序号k,a为矩阵时,返回a每列最大值组成行向量y,k记录每列最大值对应行号,为行向量
max(a,[],'all') %%返回m×n矩阵(n>1)a中最大元素
max(a,[],'2') %%返回m×n矩阵每行上的最大值为列向量
%矩阵a的条件数等于a的范数与a逆矩阵的范数的乘积,条件数越接近1矩阵性能越好
cond(a,1); %计算a的1-范数下的条件数
cond(a); %计算a的2-范数下的条件数
cond(a,inf); %计算a的无穷大范数下的条件数
fft(a); %a数据列的快速傅里叶变换
ifft(a); %a数据列的快速傅里叶逆变换

2.2.矩阵数值运算

a=m:p:n; %生成初始值:步长:终值的行向量,若p缺省,则默认p=1
a=linspace(m,n,h); %生成起始值为m,终值为n,分成h-1段的行向量
%a1,a2为每行元素数量相同的矩阵,则:
a=[a1;a2]; %a1,a2上下拼接为矩阵a
%a1,a2为每列元素数量相同的矩阵,则:
a=[a1.a2]; %a1,a2左右拼接为矩阵a
%若a为矩阵
a(m,:); %表示第m行所有元素
a(:,m); %表示第m列所有元素
a(:); %将a各列向量从左到右堆叠成一列,形成一个列向量
a(m:n:q,x:y:z); %a矩阵中m到n以q为间隔的行与x到y以z为间隔的列所有的元素形成的矩阵
[m,n]=find(a>x); %返回a矩阵中大于x的元素所在行标数组m,列标数组n,形成数组
diag(a) %提取a对角线元素返回列向量,若a为列向量,则生成以a作为对角线元素的对角矩阵
diag(a,k) %提取第k条对角线元素返回列向量(k>0往上取,k<0往下取),若a为列向量,则产生以a作为第k条对角线的矩阵
d=eig(a); %a的特征值,返回到列向量d中
[v,d]=eig(a); %a的特征向量和特征值(v为矩阵,其列向量为特征向量;d为矩阵,对角线元素为对应特征值)
rref(a); %将a化为行阶梯最简矩阵
orth(a); %a的正交化矩阵
trace(a); %a的迹(对角线元素之和)
reshape(a,[m,n]); %将矩阵a按列重排为m×n矩阵
[m,n]=size(a); %返回a的行数和列数
triu(a); %返回矩阵a的主对角线及以上的元素
triu(a,k); %返回矩阵a的第k条对角线及以上的元素
tril(a); %返回矩阵a的主对角线及以下的元素
tril(a,k); %返回矩阵a的第k条对角线及以下的元素
rot90(a,k); %返回矩阵a的逆时针方向选择90度的k倍时的矩阵,k=1时可缺省
fliplr(a); %将矩阵a左右翻转后返回
flipud(a); %将矩阵a上下翻转后返回
inv(a); %返回矩阵a的逆矩阵
pinv(a); %返回矩阵a的伪逆矩阵
null(a); %返回a的基础解系
rank(a); %返回矩阵a的秩
[l,u]=lu(a); %获得a的上三角分解矩阵l,下三角分解矩阵u,满足a=l*u
[l,u,p]=lu(a); %获得a的上三角分解矩阵l,下三角分解矩阵u,置换矩阵p,满足a=lu,a=p^(-1)*l*u
[l,a1,m]=svd(a); %获得a的奇异值分解,a=l*a1*m
a=sparse(s); %将矩阵s转化为稀疏存储方式的矩阵a
s=full(a); %将矩阵a转化为完全存储方式的矩阵s
sparse(m,n); %生成一个m*n的所有元素都为0的稀疏矩阵
sparse(u,v,s); %u,v,s为等长向量,u(i),v(i)分别为s(i)的行下标,列下标,建立稀疏矩阵
spconvert(a); %直接建立稀疏矩阵,a为一个m*3或m*4的矩阵,a(i,1)为第i个非零元素的行下标,a(i,2)第i个非零元素的列下标,
%a(i,3)第i个非零元素的实部,a(i,4)第i个非零元素的虚部,若矩阵全部元素都是实数,则无需第四列
%生成特殊矩阵
a=[]; %生成空矩阵a
eye(n); %n阶单位阵
magic(n);%n阶魔方矩阵
ones(m,n); %元素全为1的m×n矩阵
zeros(m,n); %元素全为0的m×n矩阵
rand(m,n); %元素在[0,1]均匀分布的m×n矩阵
a+(b-a)*rand(m,n); %元素在[a,b]均匀分布的m×n矩阵
randi([m,n],x,y); %元素服从m到n均匀分布的x×y矩阵
randn(m,n); %元素服从标准正态分布的m×n随机矩阵
u+o*randn(m,n); %元素服从(u,o^2)分布的m×n随机矩阵
unifrnd(a,b,[1,n]); %随机产生n个元素(范围为a~b)的行向量
vander(v);%v为一向量,产生以v为基础的范德蒙矩阵
hilb(n);%生成n阶希尔伯特矩阵(希尔伯特矩阵特点是hilb(n)(i,j)=1/(i+j-1);)
compan(p);%p为一向量,生成以p为系数向量的多项式的伴随矩阵,伴随矩阵的特征值等于多项式方程的根
pascal(n);%生成n阶帕斯卡矩阵

3.向量与多项式的数值运算

3.1.多项式p(x)=a0*x^n+a1*x^(n-1)+...+an-1*x+an

%p(x)的系数向量a=[a0,a1,a2,...,an],若p(x)的单根为r1,r2,...,rn
%,令r=[r1,r2,...rn]则:
y=poly2sym(a); %生成多项式(多项式中以x为自变量,其中x为符号)
y=poly(r); %生成多项式,若r为n阶矩阵,y为|x*I-a|特征多项式的n+1个系数
y=polyder(a); %返回p(x)导数的系数
y=polyder(a1,a2); %返回两多项式乘积的导数的系数
[p,q]=polyder(a1,a2); %返回两多项式相除的导数的系数,导数分子存入p,导数分母存入q
y=roots(a); %返回p(x)的n个根
y=polyval(a,x); %返回p(x)在x的值,x为方阵时,计算方阵中每一个元素的多项式运算,返回方阵
y=polyvalm(a,x); %返回p(x)在x(x为方阵)的值,进行方阵的运算
%若a1,a2为两多项式f(x),g(x)的系数向量,则:
y=conv(a1,a2); %返回f(x)*g(x)的系数向量
[div,rest]=deconv(a1,a2); %返回商多项式的系数向量div,余数多项式的系数向量rest,有关系:f(x)=g(x)*商+余数

3.2.匿名函数建立及其运算:可建立匿名函数f=@(x1,x2,...,xn)f(x1,x2,...,xn);

a=fzero(f,x0); %求匿名函数f在x0附近的零点,返回值a
a=fzero(f,[m,n]); %求匿名函数f在区间[m,n]的零点,返回值a,要求f(m)*f(n)<0
[x,y]=fminbnd(f,a,b); %求匿名函数f在[a,b]上的最小值点x,与最小值y
[X,y]=fminsearch(f,X0); %求多元匿名函数f在X0附近最小值点X,最小值y
integral(f,a,b) %求一元匿名函数f在[a,b]上的积分值,使用integral(f,a,b,'RelTol',1e-20)可获得高精度的值
%对于数值向量可以用integral(f,a,b,'RelTol',1e-20,'ArrayValued',true)求积分
integral2(f,a,b,c,d) %求二元匿名函数f在[a,b]*[c,d]上的二重积分值
integral3(f,a,b,c,d,e,f) %求三元匿名函数f在[a,b]*[c,d]*[e,f]上的三重积分值
%quadndg(f,[x1,x2,...,xn],[x11,x22,...,xnn])可求多元匿名函数的多重积分值

4.符号运算

4.1.符号变量的建立:syms x1 x2 ... xn %声明变量x1,x2,...,xn

%建立符号表示式:f=f(x1,x2,...,xk);
%分段函数表示:f=piecewise('a','f1(x)','b','f2(x)');定义域为a时函数为f1(x),定义域为b时函数为f2(x)
%多元函数的雅克比矩阵
%有多元函数:y1=f1(x1,x2,...,xn);y2=f2(x1,x2,...,xn);...,ym=fm(x1,x2,...,xn);
%则:j=jacobian(y,x);可求多元函数的雅克比矩阵,其中y为函数矩阵,x为自变量矩阵
%h=hessian(y,x);可求多元函数的Hessian矩阵
gcd(f1,f2) %提取f1,f2最大公约式
a=eval(f); %若运算到此步时,f有具体数值,则可返回f的数值为a
y=str2sym('f(x1,x2...,xn)'); %将字符串转化为符号表达式
b=sym(a); %a为数值,则返回其符号类型
limit(f,x,a); %求f关于自变量x在a处的极限值
limit(f,x,a,'right'); %求f关于自变量x在a处的右极限值
limit(f,x,a,'left'); %求f关于自变量x在a处的左极限值
limit(f,x,inf,'right'); %求f关于自变量x左无穷处极限值
limit(f,x,inf,'left'); %求f关于自变量x右无穷处极限值
diff(f,x,n); %求f关于自变量x的n阶偏导数
int(f,x,a,b); %求f关于自变量x在区间[a,b]上的定积分
int(f,x); %求f关于自变量x的不定积分(结果中没有任意常数)
symssum(f,x,a,b); %求数列f关于自变量x从a到b求和
symprod(f,k,a,b); %数列f关于自变量k从a到b求积
taylor(f,x,a,'order',n); %求f关于自变量x在x=a处的泰勒展开式前n项,若a缺省,则默认a=0
fourier(f,x,w);%对自变量为x的函数f进行傅里叶变换,变换后自变量为w
ifourier(F,w,x);%对自变量为w的函数F进行傅里叶逆变换,变换后自变量为x
laplace(f,x,s);%对自变量为x的函数f进行拉普拉斯变换,变换后自变量为s
ilaplace(f,s,x);%对自变量为s的函数F进行逆拉普拉斯变换,变换后自变量为x

4.2.方程组的求解:若有方程组:f1=0;f2=0;...;fn=0;方程中含有n个自变量x1,x2,...xn,令:

%f=[f1,f2,...,fn],vars=[x1,x2,...,xn]
y=solve(f,vars); %返回方程组的解向量,对应于vars
vars=solve(f,vars); %返回方程组的解向量更新vars
vpasolve(eqns,vars) %求方程组准解析解
ff=optimset;ff.TolX=1e-5;ff.TolFun=1e-5;
fsolve(f,x0,ff)%求满足以上精度的解
%注:只能求解具有形式解的方程组
%求解微分方程组:声明变量:syms y(x) %x是符号变量,y(x)是x的符号变量,使用diff(f,x,n)构造微分方程:
dsolve(eqns) %求微分方程组eqns的解
dsolve(eqn,cond) %求微分方程eqn在条件cond下的解

4.3.符号表达式的化简与替换

collect(f,x) %将f按照变量x合并同类项
a=factor(f); %将f分解因式,返回a
f=prob(a);%将因式分解后的因子乘起来返回多项式
f1=latex(f);%将多项式按照latex排版表示
subs(f,old,new); %将符号表达式f中变量old替换为new

5.图形绘制

5.1.对于二维数值运算的绘图

subplot(m,n,k) %将当前窗口分割为m×n个子图,指定第k个子图为当前子图
plot(x,y,'b*-') %以x元素为横坐标,y对应元素为纵坐标,‘b*-’为颜色+点型+线型组合,有以下常用
%颜色:b蓝色,y黄色,g绿色,r红色;点型:.点,*标记*,x标记x;线性:-实线,:点线,-.点画线,--虚线
plot(x,y,'b*-',x,y,'linewidth',5,'markersize',10) %设置线宽,点型大小
axis([xmin,xmax,ymin,ymax]) %设置当前坐标轴x,y坐标范围
title('string') %添加标题
xlabel('string') %添加x轴标题
ylabel('string') %添加y轴标题
text(x,y,'string') %在(x,y)处添加文字说明
polarplot(theta,rho,'s') %在极坐标绘图,theta为极角,rho为极径,参数s与plot相似
comet(x,y) %绘制二维质点动画轨迹
bar(x,y,'s') %直方图,默认为'Group'形式(簇状分组);'Stack'为堆积分组
rose(theta,x) %极坐标下直方图,x用于指定区间的划分方式
stem(x,y,'s') %杆图
stairs(x,y,'s') %阶梯图
semilogx(x,y,'s') %半对数表示图,x为常用对数坐标
semilogy(x,y,'s') %半对数表示图,y为常用对数坐标
loglog(x,y,'s') %半对数表示图,x,y均为常用对数坐标
fill(x,y,'s') %填充闭合图形,x为闭合图形闭合曲线逆时针的横坐标点构成向量,y同理
pie(x,ex) %绘制饼图,ex代表要脱离饼图的部分
quiver(x,y,u,v) %绘制矢量图,(x,y)为矢量起点坐标,(u,v)为矢量终点坐标
legend('a','b','c','d','f') %对所给数据每一部分显示一个图例
hold on %保持图形编辑图
hold off %取消图形保持
grid on %加坐标网格
box on %加边框
%若x做分母可能取到0,则用x+eps取代x做分母
plotyy() %双纵轴表示
plotyyy() %三纵轴表示
plot4y()%四纵轴表示

5.2.对于符号及匿名函数的运算

%若f为匿名函数f=@(x)f(x),或符号函数syms x f=f(x),则:
fplot(f,[xmin,xmax],s); %在指定范围[xmin,xmax]内画出f的图像
ezplot(f,[a,b]); %绘制f在[a,b]上的图形,若f为隐函数f(x,y)=0,则在a 
  

5.3.三维图形绘制

%对于三维数量值函数,三维绘制与二维绘制相似,若z=f(x,y)有以下基本函数:
plot3(x,y,z,'b*-');

5.3.1.三维符号函数及匿名函数运算的绘制:

%对于符号函数及匿名函数定义的f:
fplot3(x,y,z,[a,b]); %在a 
  

5.3.1.三维数值运算曲面图的绘制:

%对于二元函数z=f(x,y),设其定义域为[a,b]*[c,d],则:
%x=a:p1:b; %步长p1
%y=c:p2:d; %步长p2
[X,Y]=meshgrid(x,y); %按上述定义生成网格节点的坐标矩阵
Z=f(X,Y); %按照z=f(x,y)定义生成函数值矩阵Z
mesh(X,Y,Z); %绘制网格曲面并赋以颜色
meshc(X,Y,Z); %绘制网格曲面并赋以颜色,并绘制等高线
meshz(X,Y,Z); %绘制网格曲面并赋以颜色,并绘制等底座
surf(X,Y,Z); %绘制光滑曲面
surfc(X,Y,Z); %绘制光滑曲面,并绘制等高线
surfl(X,Y,Z); %绘制光滑曲面,添加光照效果
rotate(h,v,a);%将图形h绕v沿正方形旋转角度a
view(a,b);%从y轴负方向起,向x轴正方向a度,仰角为b的视角观察图形
view(x,y,z);%在(x,y,z)处观察图形
view(2);%俯视图形
shading flat %对曲面平滑并除去网格线
shading interp %在网格片内采用颜色插值处理
%柱面和球面图的绘制
(X,Y,Z)=cylinder(r,n); %返回一个半径为r,高度为1的圆柱体x,y,z的坐标,圆柱体圆周有n个距离相同的点
(X,Y,Z)=sphere(n); %在三个大小为(n+1)*(n+1)的矩阵中返回n*n球面的坐标
%坐标返回后可以使用surf或mesh绘图

6.程序输入输出与设计

%函数文件:
%function [y1,y2,...,yn]=函数名(x1,x2,...,xn) %yi为输出参数,xi为输入参数
%函数参数的输入输出具有可调性:用:
%nargin可以控制实参的输入个数;nargout可以控制实参的输出个数
%输入,输出方式:
x=input('提示符号串'); %输入数值赋给x,例如:x=input('x=');
disp(x); %直接输出
fprintf('x=%.5f y=%.6f\n',x,y); %按照形式输出x,y的值
pause(n) %暂停n秒后执行文件
pause on %允许其后的暂停文件起作用
pause off %不允许其后的暂停文件起作用
warning('message') %显示警告信息message
%可以用save和load命令存储和读取文件数据
save mydata A B C %将A,B,C数据存储在文件名为mydata的文件中,load命令用法相同
%matlab与excel交互
x=xlsread(filename,sheet,x1range); %读取文件名为filename,第sheet栏中,范围为x1range的数据

6.1.选择语句

%单分支if语句
if a
    yuju;
end
%当条件a成立时,执行yuju
%双分支if语句
if a
    yuju;
else
    yuju2;
end
%当条件a成立时,执行yuju;否则执行yuju2
%多分支if语句
if a
    yuju;
elseif b
    yuju2;
else
    yuju3;
end
%当a成立时,执行yuju,否则,b成立时执行yuju2,否则执行yuju3
%switch语句
switch a
    case a1
        yuju1;
    case a2
        yuju2;
    otherwise
        yuju3;
end
%计算表达式a的值,若结果为a1,则执行yuju1,若结果为a2,执行语句2,否则执行语句3

6.2.循环语句

%for语句
for i=c
    yuju
end
%for语句针对向量c中的每一个元素执行一次循环体yuju,退出循环之后循环变量的值是向量中最后的元素值,向量为空时,循环体...
%一次也不执行
%while语句
while a
    yuju
end
%当条件a成立时执行yuju,直到a不成立时跳出循环
while a
    if b
        break
    end
end
%执行循环时,当进行到选择语句时条件b成立,则跳出循环
while a
    if b
        continue
    end
end
%执行循环时,当进行到选择语句时条件b成立,则跳出本次循环,进行下一次循环


Published with MATLAB® R2021a

你可能感兴趣的:(matlab,分类,学习)