0x00 前言
文章中的文字可能存在语法错误以及标点错误,请谅解;
如果在文章中发现代码错误或其它问题请告知,感谢!
MATLAB版本:MATLAB R2018b。
0x01二维绘图
1.plot绘图命令
plot绘图命令是MATLAB中一个基本的绘图指令,在执行该命令时,MATLAB会自动创建一个新的图形窗口,若之前有打开的图形窗口,则MATLAB将图形绘制在最近打开的图形窗口之上,将原有的图形覆盖。plot命令有多种格式,可根据需要使用。
1)plot(x)
当x为实向量时,绘制以该向量元素的下标为横坐标,以该向量元素的值为纵坐标的一条连续曲线。
当x为实矩阵,按列绘制出每列元素相对其下标的曲线,曲线数等于x的列数。
当x为复数矩阵时,按列分别绘制出以元素实部为横坐标,以元素虚部为纵坐标的多条曲线。
2)polt(x,y)
当x、y是同维向量时,绘制以x为横坐标、y为纵坐标的曲线。
当x是向量y是有一维与x等维矩阵时,绘制出多根不同颜色的曲线,曲线数等于y阵的另一维数,x作为这些曲线的横坐标。
当x矩阵,y是向量时,同上,但以y为横坐标。
当x、y是同维矩阵时,以x对应的列元素为横坐标,以y对应的列元素为纵坐标分别绘制曲线,曲线数等于矩阵的列数。
例1:
绘制实验曲线。
>> x = [5 10 20 30 40 50 60 70 80 90 110];
>> y = [5 10 11 12 13 14 15 16 17 18 19];
>> plot(x,y)
例2:
随机矩阵图形,随机生成一个行向量a和实方阵b,用plot画图命令做出a、b图像。
>> a = rand(1,10);
>> b = rand(5,5);
>> subplot(1,2,1),plot(a)
>> subplot(1,2,2),plot(b)
例3:
某次物理实验,测得摩擦系数不同情况下路程与时间的数据如表所示,在同一图 中错出不同摩擦系数情况下路程随时间的变化曲线。
不同摩擦系数时路程和时间的关系:
时间/s | 路程1/m | 路程2/m | 路程3/m | 路程4/m |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0.2 | .58 | 0.31 | 0.18 | 0.08 |
0.4 | .83 | 0.56 | 0.36 | 0.19 |
0.6 | 1.14 | 0.89 | 0.62 | 0.30 |
0.8 | 1.56 | 1.23 | 0.78 | 0.36 |
1.0 | 2.08 | 1.52 | 0.99 | 0.49 |
>> x = 0:0.2:1;
>> y = [0 0 0 0;0.58 0.31 0.18 0.08;0.83 0.56 0.36 0.19;1.14 0.89 0.62 0.30;1.56 1.23 0.78 0.36;2.08 1.52 0.99 0.49];
>> plot(x,y)
3)plot(x1,y1,x2,y2,……)
该函数功能实绘制多条曲线,注意(xi,yi)必须成对出现 ,上面的命令等价于逐次执行plot(xi,yi)命令,其中i=1,2,……。
例4:
在同一图上绘制y = sinx、y = sin(x + π \pi π/4)、y = sin(x - π \pi π/4)图像。
>> x = linspace(0, 2*pi, 100);
>> y1 = sin(x);
>> y2 = sin(x + pi/4);
>> y3 = sin(x - pi/4);
>> plot(x, y1, x, y2, x, y3)
例5:
在同一图上绘制y = sinx、y = 5cos(x -
π
\pi
π/4)图像。
>> x1 = linspace(0, 2*pi, 100);
>> x2 = x1 - pi/4;
>> y1 = sin(x1);
>> y2 = 5*cos(x2);
>> plot(x1, y1, x2, y2)
4)plot(x,y,s)
x、y为向量或矩阵,s为单引号标记的字符串,用来设置所画数据点的类型、大小、颜色以及数据点之间的连线类型、粗细、颜色等。若s省略,此时将由MATLAB系统默认设置,即一律采用“实线”线型。
颜色控制字符表:
字符 | 色彩 | RGB值 |
---|---|---|
b(bule) | 蓝色 | 001 |
g(green) | 绿色 | 010 |
r(red) | 红色 | 100 |
c(cyan) | 青色 | 011 |
m(magenta) | 品红 | 101 |
y(yellow) | 黄色 | 110 |
k(black) | 黑色 | 000 |
w(white) | 白色 | 111 |
线型符号说明:
线型符号 | 符号含义 | 线型说明 | 符号含义 |
---|---|---|---|
- | 实线(默认值) | : | 点线 |
- | 虚线 | -. | 点画线 |
例6:
任意描一些数据点,熟悉plot命令中参数的用法。
>> x = 0:pi/10:2*pi;
>> y1 = sin(x);
>> y2 = cos(x);
>> y3 = x;
>> y4 = x.^2;
>> hold on
>> plot(x,y1,'r*')
>> plot(x,y2,'kp')
>> plot(x,y3,'bd')
>> plot(x,y4,'g:')
>> hold off
说明:hold on命令用来使当前轴及图形保持不变,准备接受此后plot所绘制的新曲线。hold off 使当前轴及图形不再保持上述性质。
例7:
演示保持命令的应用。
>> N = 9;
>> t = 0:2*pi/N:2*pi;
>> x = sin(t);y = cos(t);
>> tt = reshape(t, 2, (N+1)/2);
>> tt = flipud(tt);
>> tt = tt(:);
>> xx = sin(tt);yy = cos(tt);
>> plot(x, y)
>> hold on
>> plot(xx ,y)
>> hold off
>> plot(xx, y)
5)plot(x1,y1,s1,x2,y2,s2,……)
这种格式有参数控制,运行此命令等价于依次执行plot(xi,yi,si),其中i=1,2,……。
例8:
在同一坐标系下 画出下面函数在[-
π
\pi
π,
π
\pi
π]上的绘图。
y1 = esinx ,y2 = ecosx ,y3 = e sinx+cosx ,y4 = esinx-cosx ,y5 = 0.2esinxcosx ,y6 = 0,2ecosx+sinx 。
>> x = -pi:pi/10:pi;
>> y1 = exp(sin(x));
>> y2 = exp(cos(x));
>> y3 = exp(sin(x)+cos(x));
>> y4 = exp(sin(x)-cos(x));
>> y5 = 0.2*exp(sin(x).*cos(x));
>> y6 = 0.2*exp(cos(x)./sin(x));
>> plot(x,y1,'b:',x,y2,'d-',x,y3,'m>:',x,y4,'rh-',x,y5,'gh-',x,y6,'bh-')
2.fplot绘图命令
fplot命令也是MATLAB提供的一个画图命令,用来指导数据点的选取,通过其内部自适应算法,在函数变化比较平稳处,它所取的数据点就会相对稀疏一点,在函数变化明显处所取的数据点旧会自动密一些。
fplot命令的调用格式:
调用格式 | 说明 |
---|---|
fplot(f,lim) | 在指定范围lim内画出一元函数f的图形 |
fplot(f,lim,s) | 用指定的线型s画出一元函数f的图形 |
fplot(f,lim,n) | 画一元函数f的图形时,至少描出n+1个点 |
fplot(funx,funy) | 在t的默认间隔[-5,5]上绘制由x=funx(t)和y=funy(t)定义的曲线 |
fplot(funx,funy,tinterval) | 在指定的时间间隔内绘制。将间隔指定为[tmin tmax形式的二元向量] |
fplot(_,LineSpec) | 指定线条样式、标记符号和线条颜色 |
fplot(_Name,Value) | 使用一个或多个名称-值对参数指定行属性 |
fplot(ax,_) | 绘制到由x指定的轴中,而不是当前轴(GCA)。指定轴作为第一个输入参数 |
fplot( ) | 根据输入返回函数行对象或参数化函数行对象 |
[X,Y] = fplot(f,lim,…) | 返回横坐标与纵坐标的值给变量X和Y |
以上。
例9:
分别用fplot命令和plot命令作出函数y = sin(1/x),x
∈
\in
∈[0.01,0.02]
>> x = linspace(0.01,0.02,50);
>> y = sin(1./x);
>> subplot(2,1,1),plot(x,y)
>> subplot(2,1,1),fplot(@(x)sin(1./x),[0.01,0.02])
3.ezplot绘图命令
对于符号函数,MATLAB也提供了一个专门的绘图命令 ——ezplot命令。利用这个命令可以很容易的将一个符号函数图形化。
ezplot命令的主要调用格式:
调用格式 | 说明 |
---|---|
ezplot(f) | 绘制函数f(x)在默认区间 x ∈ \in ∈[-2 π \pi π,2 π \pi π]上的图像,若f为隐函数f(x,y),则在默认区间x ∈ \in ∈[-2 π \pi π,2 π \pi π],y ∈ \in ∈[-2 π \pi π,2 π \pi π]上绘制f(x,y)= 0的图像 |
ezplot(f,[a,b]) | 绘制函数f(x)在默认区间 x ∈ \in ∈[a,b]上的图像,若f为隐函数f(x,y),则在默认区间x ∈ \in ∈[a,b],y ∈ \in ∈[a,b]上绘制f(x,y)= 0的图像 |
ezplot(f,[xa,xb,ya,yb]) | 对于隐函数f(x,y),则在区间x ∈ \in ∈[xa,xb],y ∈ \in ∈[ya,yb]上绘制f(x,y)= 0的图像 |
ezplot(x,y) | 在默认区间t ∈ \in ∈[0,2 π \pi π]上绘制x=x(t),y=y(t)的图像 |
ezplot(x,y,[a,b]) | 在默认区间t ∈ \in ∈[a,b]上绘制x=x(t),y=y(t)的图像 |
ezplot(…,figure) | 在指定的图形窗口中绘制函数图像 |
例10:
绘制隐函数f1=e2x,x
∈
\in
∈[
π
\pi
π,
π
\pi
π]图像。
>> syms x
>> f1 = exp(2*x)*sin(2*x);
>> subplot(2,2,1),ezplot(exp(2*x),[-pi,pi])
>> subplot(2,2,2),ezplot(sin(2*x))
>> subplot(2,2,3),ezplot(exp(2*x)+sin(2*x),[-pi,pi,0,2*pi])
>> subplot(2,2,4),ezplot(f1,[-4*pi,4*pi])
以上。
参考文档:
1.https://www.zybuluo.com/codeep/note/163962(Markdown 公式指导手册)
2.https://blog.csdn.net/katherine_hsr/article/details/79179622(数学符号和公式)
3.天工在线.中文版MATLAB2018从入门到精通(实战案例版)[M].北京:中国水利水电出版社,2018.