Matlab小结3(绘图)

plot(x,y,’颜色’) –b蓝色,-r红色
例plot(x,y,’-’,[0],[12],‘o’)其中’-'为实现,在已知点(0,12)为间断点的情况下,不加’o’则图像这一点空缺(间断),加则用红色圆圈代替

subplot(n,m,k)其中n行数m列数k区域序号,
例如y=@(x)sin(tan(x))-tan(sin(x));

x1=[-pi:0.05:pi];
x2=[-pi:0.0001:pi];
y1=y(x1);
y2=y(x2);
subplot(1,2,1),plot(x1,y1,'-b')
subplot(1,2,2),plot(x2,y2,'-r')

在这里插入图片描述
subplot的前两个数字1、2意为把结果窗口分割为一行两列,放两张图,编号1、2即括号内第三个数字,格式为先写subplot的图位置加逗号,再画图

变量字母可以有下标,用_表示

在没有使用输出多个图的命令的情况下(如hold on、figure等),一次运行多个画图指令最终只输出最后一个

对于位置用法的函数可以使用官方的查询网站,用法全且有例子
https://ww2.mathworks.cn/help/matlab/ref/cylinder.html?ivk_sa=1024320u

函数代码过长不方便看时,可以在第一行加’…’第二行继续

分段函数
写法一用if…else…
写法二用类似bool的判断
二的例
在这里插入图片描述

x=[-2:0.01:2];
y=1.1*sign(x).*(abs(x)>1.1)+x.*(abs(x)<=1.1);
plot(x,y)

其中abs的部分非0即1,如abs(x)>1.1就是1行401列的向量,满足为1,不满足0
写法三piecewisee(condition1, Val1, condition2, Val2, …,)
同上例

syms x;
y=piecewise(x>1.1,1.1,x<-1.1,-1.1,x>=-1.1&x<=1.1,x);
x0=[-3:0.01:3]; 
y0=subs(y,x,x0); 
plot(x0,y0)

多轴函数
将两个相差较大的函数画在同一张图上
例y1=sin(x),y2=0.01*cos(x)

x=0:0.01:2*pi;
y1=sin(x);
y2=0.01*cos(x);
plot(x,y1,x,y2,'--')
plotyy(x,y1,x,y2,)

只运行到plot可以看出由于相差较大其中一个看不出趋势故需要多轴函数图,其中’–’表示第二个函数用虚线,’-.’虚点线,’-’实线,’:’点线,不指定则默认实线
在这里插入图片描述
运行plotyy会覆盖plot的图像,不能像plot指定第二个函数的线类型
在这里插入图片描述
还有其他的多轴函数,如plotyy(),plotyn(),plotxx()
已经画了一个图若想再增加一个窗口画图可用figure,函数…
对于x=[0:0.01:10];
y=x;
z=x+ix;
然后话他的图i
x不需要i.*x是因为z也是一行向量,之前都是

comet(x,y)绘制动点

polar(theta,rho)绘制极坐标图

fimplicit(f,[a b c d],’-r’)绘制隐函数(y是x的函数,且f(x,y)=0)图像,其中[a,b]为图像范围,f可以定义外置函数也可以用匿名函数表示,’-r’为红色的意思,可以省略,不写时默认为蓝色,[a b c d]中的ab表示x的范围,cd表示y的范围,若x的范围和y的相同可以只写[a b],也可以不写范围

在这里插入图片描述

f=@(x,y)x.^2.*sin(x+y.^2)+y.^2.*exp(x+y)+5.*cos(x.^2+y); 
fimplicit(f,'-r')
fimplicit(f,[-10,10],'-r')

stem(x,y)再指定x的位置画出序列y
stem(x,’filled’)将序列y的数据按x轴以茎的形式画出,filled表示实心茎秆,还有其他类型

关于代码中是否需要点乘(.*)的判断,首先是点乘的意义,为对应位置相乘,通常情况下,x为一行向量为矢量,一个数乘x为标量相乘不需要点,但矢量与矢量相乘时需要点,容易忽略的是x的平方这个也是矢量相乘需要点(x.^2),以上为个人理解可能有错

读取Excel文件中指定工作表sheet的指定范围并返回矩阵
num=xlsread(filename,sheet,’range’)其中sheet可以省略,文件名用单引号且要输入后缀.xls

一个使用虚数时常见的错误:虚数的i需要保证之前运行的代码里没有赋值给i的

三维曲线

plot3(x,y,z)
在这里插入图片描述
stem3,fill3,bar3等
三维彗星轨迹comet3(x,y,z)

加网格plot3(x,y,z),grid

figure是新开一个视图(窗口/页面),而hold on是在已输出的图上再画一个图(不然第二个图会覆盖第一个图)

三维曲面

[X,Y] = meshgrid(x,y) %基于向量x和y中包含的坐标返回二维网格坐标,注意左边中括号右边小括号
surf(X,Y,Z)或mesh(X,Y,Z)绘图,其中surf(X,Y,Z,C) 还指定曲面的颜色(曲面图 - MATLAB surf - MathWorks 中国),mesh为三维网格
在这里插入图片描述

[x,y] = meshgrid(-2:.1:2);
z = 1./(sqrt((1-x).^2 + y.^2)) + 1./(sqrt((1+x).^2 + y.^2));
surf(x,y,z),shading flat

其中.1相当于0.1
shading 函数控制曲面和补片图形对象的颜色着色
shading flat 每个网格线段和面具有恒定颜色,该颜 色由该线段的端点或该面的角边处具有最小索引的 颜色值确定
shading faceted 具有叠加的黑色网格线的单一着色,这是默认的着色模式
shading interp 通过在每个线条或面中对颜色图索引 或真彩色值进行插值来改变该线条或面中的颜色

分段三维

在这里插入图片描述

[x1,x2]=meshgrid(-1.5:.1:1.5,-2:.1:2);
p=0.5457*exp(-0.75*x2.^ 2-3.75*x1.^2 -1.5*x1).*(x1+x2>1)+...
0.7575*exp(-x2.^2 -6*x1.^2 ).*((x1+x2>-1)&(x1+x2<=1))+...
0.5457*exp(-0.75*x2.^2-3.75*x1.^2+1.5*x1).*(x1+x2<=-1);
surf(x1,x2,p),xlim([-1.5 1.5]);

值得学习的时第二段两个范围的写法用&,其中xlim表示x范围为-1.5到1.5,同理还有ylim,zlim,

view函数
[az,el]= view %返回当前方位角和仰角
view(2) %设置默认二维视图 az = 0 , el = 90
view(3) %设置默认三维视图 az = –37.5, el = 30
通常用法surf(x,y,z),view(0,90);

三维参数方程
fsurf(funx,funy,funz,[umin umax vmin vmax])

球面绘制
[x,y,z]=sphere(n)其中n代表划分nn面的单位球体即nn个小网格

柱面绘制
[x,y,z]=cylinder(r,n)其中n是柱面圆周上等距点数(可省略),r是柱面半径

等高线绘制
直接绘制二维等高线图contour()
带有标注的等高线[C,h]=contour(x,y,z,n),clabel(C,h)
三维等高线contour3(x,y,z,n)
填充等高线contourf(x,y,z,n)

三元隐函数
fimplicit3( f,[a,b])同二维,f可以为匿名函数或M文件外置函数

三维曲面旋转
rotate(h,direction,alpha)三个内容分别为原三维曲面(一般句柄函数)、旋转基线、旋转角度。绕轴正方向旋转,v=[1,0,0]

三维实体切片
[x,y,z]=meshgrid(……)
v=f(x,y,z)
slice(x,y,z,v,[a,b],[c,d],[e,f])后三个中括号分别为x,y,z的范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值