学习课本为: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,操作更方便哦