matlab基础与应用——常用命令整理

学习课本为:matlab基础与应用 第3版 北航出版社 张平 吴云结等编著

下面为我学习时在课本抄写出来的命令,以及我的注释

I/O文件操作函数 open完之后要记得close掉
fclose('text.txt') %关闭文件
fopen('text.txt','r') %已只读方式打开文件,‘w’为写
A=fscanf(myf,'%5d') %myf=fopen('text.txt','r') %从文件中按格式读取字符
frpintf(fid,'%d',val) %按照格式把数据写到文件或者屏幕上,跟C用法一样
fgetl(f1) %读文件的行,忽略换行符,一次读一行,用循环调用
fgets(f1) %读文件的行,包含换行符,一次读一行,用循环调用
   
符号表达式的简化  
命令 说明
collect(f) %打开括号,合并同类项,such:f=(x^2-1)*(x-2);
expand(f) %打开括号,并降幂排序
factor(f)  %分解因式 分解为(x+1)(x-1)这种
simplify(f) %简化表达式
symsum 和级数,有点像是泰勒展开
   
符号多项式  
charploy(y) %求y的特征多项式
horner(ans) %将降幂排列的多项式变成嵌套形式,好像是提取公因子
numden %分子或分母的提取
poly2sym %多项式->符号(sym)
sym2poly %符号->多项式
   
符号微积分 syms x %定义一个sign变量为x;      sym('sin(x)^2-2*x+cos(x)^2') %建立符号表达式
diff('a')  %求导或者差分
int(f,x)  %对函数f,求变量x的导
[v,j]=jordan(y)  %求矩阵y的特征向量矩阵,以及特征值的对角矩阵,其中j为jordan标准型
taylor(f) %对f进行泰勒展开
   
符号可变精度算术  
digits 设置可变精度
vpa(a,50)  %用50位精度显示a,such:vap('pi',50)
   
求解符号方程  
compose 函数的复合
dsolve('Dy=1+y^2','y(0)=1',x)  %求微分方程,初值也给了x为dy/dx里的dx
dsolve('D2y=cos(x)-y','Dy(0)=0','y(0)=1',x)  %求二阶微分方程
[x,y]=dsolve('Dx=3*x+4*y','Dy=-4*x+3*y','x(0)=0,y(0)=1') %对两个微分方程求解
finverse 逆函数
linsolve 齐次线性方程组的求解
slove(f,x)  %求方程f对变量x求根 slove(f)就是默认对x求根 
[xx,yy,zz]=solve(f1,f2,f3)  %对方程f1,f2,f3求x的根,结果一一对应
   
符号线性代数  
charploy 特征多项式
det(y) %求矩阵y的行列式
[p,e]=eig(y) %求矩阵y的特征根和特征向量
inv(y)  %求矩阵y的逆矩阵 y-1
[v,j]=jordan(y)  %求矩阵y的特征向量矩阵,以及特征值的对角矩阵,其中j为jordan标准型
 yt=transpose(y)  %求y的转置矩阵yT
svd(y)  %求矩阵的奇异值
   
   
   
绘图  
ezplot(f)  %对函数f,程序自动选择变量范围绘图
ezplot(f,[-10 10])  %在区间-10,10绘图
plot(x,y) %绘制二维图x,y轴
plot有参数1)b蓝色,c青色,g绿色,K黑色,m紫红色,r红色,w白色,y黄色  such:plot(x,y,'k:x') %黑 点连线 标x
2)-默认,-.点划线,:点连线,--虚线  such:plot(t,x,'k -. x') %黑色 点划线 标x
3).点,+十字号,o圆圈,*星号,x叉号,s正方形,d棱形,h六角形,p五角型,v下三角,^上三角,<左三角,>右三角
   
grid on/off %无参数,直接用,给图像加网格
axis([xmin xmax ymin ymax]) %调整图像的坐标范围
axis(控制)  
有参数 'auto'自动设置坐标,‘square’将图形设置为正方形图形,‘equal’将图形的x.y坐标轴的单位刻度设置为相等
normal'关闭axis(square)和axis(equal)命令的作用,xy使用笛卡尔坐标系,ij使用matrix坐标系(坐标原点在左上方,x坐标从左到右增大,y坐标从上到下增大)
on打开所有轴标注,标记和背景,off关闭所有轴标注,标记和背景
   
set(gca,'xtick',[-1:0.05:1]) 给x轴标示向量
xlabel('t(deg)') %X轴标注
ylabel('magnitude(V)') %Y轴标注
title('hello world!') %图形标题
text(3.14,sin(3.14),'\leftarrow this is zero for\pi') %在x,y处标注说明文字,\leftarraow为左箭头,\pi为Π
有参数\pi为Π,\alpha为α,\betaβ,\leftarrow为,\rightarrow,\bullet为·
   
legend(字符串1,字符串2,…,参数) such: legend('first','second',-1)
有参数0:尽量不与数据冲突,自动放置在最佳位置;1放置在图形的右上角,2左上角,3左下角,4右下角,-1视窗外右边
   
hold on/off %保持当前图形及轴系的所有特性 such: plot(x,sin(x),'-.')  hold on  plot(x,1.5*cos(x),':')
subplot(m,n,p) %将当前绘图窗口分割成m行n列区域,p表示第几个区域 such:subplot(223)表示划分2行2列,画出第3块画布
fill(x,y,'b') %填充二维封闭多边形
semilogx(x,y) 或者semilogy(x,y)  %绘制半对数坐标,其中x为10为底的对数坐标,y轴为线性坐标;
loglog(x,y) %绘制x,y轴都是以10为底的对数坐标
polar(t,r) %绘制相角为theta,半径为radius的极坐标图形such: t=0:0.01:2*pi; r=2*cos(2*(t-pi/8));
fplot('sin(3*x)',[0,4]) %绘制函数sin3x在区间0到4的图形
pie(x,[1,0,1,0,0,0]) %其中x=[15,35,10,15,25]; %绘制饼图,并把1和3的饼块分离出来
bar(x,'stack') 和 bar(x,'group') %绘制条形图和柱状图(垂直方向)
barh(x,'stack') 和 barh(x,'group') %绘制条形图和柱状图(水平方向)
stairs(x,y) %绘制梯形图
hist(y,x) %绘制y在以x为中心的区间中分布的个数条形图
compass(x) %其中x含复数的一维矩阵 %绘制向量图
compass(y,z) %y,z都是实数 %以复数坐标系的原点为起点,绘制出带箭头的一组复数向量,其中x是实部,y是虚部
feather(x) 或 feather(y,z) %feather的起点为序号(1,2,3…),而不是原点,一般用不上
plot3(sin(t),cos(t),t,'b') %绘制三维图,参数为x,y,z,颜色标线圆圈等参数
view(az,el) %将图形视角改变到指定的方位角az和仰角el上
注:1)view([x,y,z])在笛卡尔坐标系中将视图设为沿向量[x,y,z]指向原点,2)view(2)默认二维视角,az=0,el=90; 3)view(3)默认三维视角,az=-37.5,el=30
4)[az,el]=view返回当前的方位角az和仰角el,5)view(T),用一个4X4的转换矩阵T来设置视角,6)T=view返回当前的4X4转换矩阵
   
[X,Y]=meshgrid([1,2,3,4],[5,6,7]) %将向量x(1xm),y(1xn)转换为三维网格数据矩阵X(nxm),Y(nxm)
mesh(X,Y,Z) %绘制三维网格曲面
meshc(X,Y,Z) %带等高线的三维网格曲面
meshz(X,Y,Z) %带底座的三维网格曲面
hidden on/off  %网格线条区域透明或不透明
bar3(x,'grouped') %x=[10,20,30;15,35,10;5,20,25]; %绘制垂直的三维直方图
bar3h(x) %x=[10,20,30;15,35,10;5,20,25]; %绘制水平的三维直方图
参数 grouped分组式的,detached分离式的,stacked累加式的
   
[X,Y,Z]=peaks(30); 生成三维向量
surf(X,Y,Z) %绘制三维曲面图
shading flat平滑/interp插值 shading实现平滑加颜色,插值加颜色等功能
值为NaN时,绘图会忽略NaN,因此会出现一个孔  
surfc(X,Y,Z) %画出一个具有等高线的曲面图
surfl(X,Y,Z) %画出一个具有亮度的曲面图
colormap pink %colormap ([12/255,33/255,45/255])%RGB 图变粉色,white也行,其他报错
contour3(X,Y,Z,32,'r')%32代表等高线圈数 %三维等值线图
contour(X,Y,Z,32,'r') %二维等高线图
pcolor(X,Y,Z) %单色等值线图
waterfall(X,Y,Z) %瀑布图?
quiver(X,Y,DX,DY)   %[DX,DY]=gradient(Z,0.5,0.5) %在等值线图上画方向箭头或者速度箭头
fill3(rand(3,5),rand(3,5),rand(3,5),'b') 使用数组x,y,z作为多边形的顶点,b为填充颜色画出三角形
clabel(cs) %cs=contour(x,y,z,8) 标注等值线图标上的高度值
   
   
其他  
who %查看工作空间有哪些变量
whos(x) %查看x的细节如占用内存和大小类型等
exist('a') %查询变量a是否出现,0不存在,1当前空间有一个,2~8给出变量作为文件,函数等信息
clear %清除当前工作空间变量
clc %清除工作空间指令和结果
format short %format 参数 %数据显示格式 short是默认显示,4位小数
参数:long为16位,short e为5位加指数,long e为16位加指数,short g仅用5位数表示,long g用15位表示,hex十六进制,bank2个十进制位,+正负或零,rat有理数近似
   
help sqrt %了解关于sqrt函数的用法和功能
[n,m]=size(a) %返回a数组的行,列数
length(a) %返回数组a的维度
find(a>3) %给处特殊要求(非零或者其他条件)的矩阵元素的行/列标记
a=rand(n,m) %元素服从0~1之间的均匀分布的随机矩阵
golbal a b c %全局变量,需要工作空间和M函数都出现
sqrt(a) %对a开根号
poly(a) %由多项式的根求多项式系数,结果为行向量表示(最后一位是常数位)
polyder(p) %对多项式p(x)求微分
y=polyval(p,x) %p(x)是函数,x是变量数组 %计算多项式p(x)的数值
   
abs(a) %从字符串到ascii码的转换
setstr(a) %ascii码转换成字符串
int2str(a) %整数转换成字符串
num2str(a) %数字转换成字符串
upper(a) %字符串变成大写
lower(a) %字符串变成小写
str2mat(a) %字符串转换成一个文本矩阵
str2num(a) %字符串转换成数字
a=sprintf(‘a= %d',b) %b=5; %按照给定格式,数字转换成字符串
a=sscanf(s,'%f') %s='1.11 2.34567' %按照给定格式将字符串转换成数字
eval(fun(x)) %fun(x)可以为M函数,也可以为‘sqrt(3)’ %可以运行用户创建的M函数,计算并赋值给其他变量
polyfit(x,y,1)  %最小二乘法一维(修改1为2变2维拟合)拟合
z=interp1(x,y,x0,'method')%x0为插值点,method为插值方法 %一维插值(x,y平面)
z=interp2(x,y,z,x0,y0,'method') 二维插值(三维立体空间)x0,y0为指定的自变量插值计算点数组
参数nearest最接近的相邻点插值,linear线性插值(默认),spline三次样条插值,cubic三次插值

下面为我整理出来的excel表格

链接:https://pan.baidu.com/s/1CzpYN1HKpEdEybVZt10mXg 
提取码:py01 
复制这段内容后打开百度网盘手机App,操作更方便哦

猜你喜欢

转载自blog.csdn.net/jwdeng1995/article/details/108861164