文章目录
一、绘制二维曲线的基本函数 1. plot 函数的基本用法 2. 含多个输入参数的 plot 函数 3. 含选项的 plot 函数 4. 双纵坐标函数 plotyy
二、绘制绘制图像的辅助操作 1. 图形标注 2. 坐标控制 3. 图形保持 4. 图形窗口的分割
二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,除直角坐标系外,还可以采用对数坐标、极坐标。数据点可以用向量或矩阵形式给出,类型可以是实型或复型。二维曲形的绘制无疑是其他绘图操作的基础。
一、绘制二维曲线的基本函数
在 MATLAB 中,基本的绘图函数是 plot
函数,利用它可以绘制出不同的二维曲线。
1. plot 函数的基本用法
plot
函数用于绘制
x
y
xy
x y 平面上的线性坐标曲线图,因此需提供一组
x
x
x 坐标及其各点对应的
y
y
y 坐标,这样就可以绘制分别以
x
x
x 和
y
y
y 为横、纵坐标的二维曲线。plot
函数的基本调用格式如下:
plot ( x, y)
其中,
x
x
x 和
y
y
y 为长度相同的向量,分别用于存储
x
x
x 坐标和
y
y
y 坐标数据。 例如,在
0
≤
x
≤
2
π
0\le x\le2\pi
0 ≤ x ≤ 2 π 区间内,我们绘制曲线
y
=
2
e
−
0.5
x
sin
(
2
π
x
)
y=2e^{-0.5x}\sin(2\pi x)
y = 2 e − 0.5 x sin ( 2 π x ) 。 程序如下:
x= 0 : pi/ 100 : 2 * pi;
y= 2 * exp ( - 0.5 * x) . * sin ( 2 * pi* x) ;
plot ( x, y)
程序运行后,打开一个图像窗口,在其中绘制函数曲线。
这里需要注意的是,求
y
y
y 时,指数函数和正弦函数之间要用点乘运算,由于 2 时标量,所以 2 与指数函数之间可以用乘法运算。这样,向量
x
x
x 和向量
y
y
y 所包含的元素个数相等,
y
(
i
)
y(i)
y ( i ) 是
x
(
i
)
x(i)
x ( i ) 点呃函数值。 例如,我们绘制曲线:
{
x
=
t
cos
3
t
y
=
t
sin
2
t
−
π
≤
t
≤
π
\left\{\begin{matrix}x=t\cos 3t \\y=t\sin^{2} t \end{matrix}\right. \begin{matrix} -\pi \le t\le \pi \end{matrix}
{ x = t cos 3 t y = t sin 2 t − π ≤ t ≤ π 这是以参数方程形式给出的二维曲线,只要给定参数向量,再分别求出
x
、
y
x、y
x 、 y 向量即可绘制函数曲线。程序如下:
t= - pi: pi/ 100 : pi;
x= t. * cos ( 3 * t) ;
y= t. * sin ( t) . * sin ( t) ;
plot ( x, y)
以上提高 plot
函数的自变量
x
、
y
x、y
x 、 y 为长度相同的向量,这类情况是十分常见的。但在实际中应用中会产生一些变化,下面分别进行说明。 (1) 当
x
x
x 是向量,
y
y
y 是矩阵时,
x
x
x 的长度与矩阵
y
y
y 的行数或列数必须相等。 如果
x
x
x 的长度等于
y
y
y 的行数,则以
x
x
x 和
y
y
y 的每列为横、纵坐标绘制曲线,曲线的条数等于
y
y
y 的列数。 如果
x
x
x 的长度等于
y
y
y 的列数,则以
x
x
x 和
y
y
y 的每行为横、纵坐标绘制曲线,曲线的条数等于
y
y
y 的行数。 如果
y
y
y 是方阵,
x
x
x 的长度和矩阵
y
y
y 的行数或列数都相等,则以
x
x
x 和
y
y
y 的每列为横、纵坐标绘制曲线。例如,下列程序可以在同一坐标中同时绘制出正弦和余弦曲线。
x= linspace ( 0 , 2 * pi, 100 ) ;
y= [ sin ( x) , cos ( x) ] ;
plot ( x, y)
程序首先产生一个行向量
x
x
x ,然后分别求取行向量 sin(
x
x
x ) 和 cos(
x
x
x ),并将它们构成矩阵
y
y
y 的两行。最后在同一坐标中同时绘制出两条曲线。 当
x
x
x 是矩阵,
y
y
y 的长度必须等于矩阵
x
x
x 的行数或列数,绘制方式与前一种情况相似。 (2) 当
x
、
y
x、y
x 、 y 是同型矩阵时,则以
x
、
y
x、y
x 、 y 对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。例如,在同一坐标中同时绘制出正弦和余弦曲线,可用下面的程序。
t= linspace ( 0 , 2 * pi, 100 ) ;
x= [ t; t] ';
y= [ sin ( t) ; cos ( t) ] ';
plot ( x, y)
(3) plot
函数最简单的调用格式是只包含一个输入参数,即 plot(x)。 在这种情况下,当
x
x
x 是实向量时,则以该向量元素的下标为横坐标,元素值为纵坐标画出一条曲线,这实际上是绘制折线图。 当
x
x
x 是复数向量时,则分别以该向量元素实部和虚部为横、纵坐标绘制出一条曲线。例如,下面的程序可以绘制一个单位圆。
t= 0 : 0.01 : 2 * pi;
x= exp ( i* t) ; % x是一个复数向量
plot ( x)
这里需要注意的是,程序中的 i 是虚数单位,这样
x
x
x 是一个复数向量。为了保证这一点, i 不能被赋其他的值。 当
x
x
x 是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于
x
x
x 矩阵的列数。当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。例如,下面的程序可以绘制 3 个同心圆。
t= 0 : 0.01 : 2 * pi;
x= exp ( i* t) ;
y= [ x; 2 * x; 3 * x] ';
plot ( y)
2. 含多个输入参数的 plot 函数
plot
函数可以包含若干组向量对,每一向量对可以绘制出一条曲线。相应的调用格式如下:
plot ( x1, y1, x2, y2, . . . , xn, yn)
(1) 当输入参数都为向量时,
x
1
x1
x 1 和$ yl, x2和
y
2
,
…
,
x
n
y2,…,xn
y 2 , … , x n 和
y
n
yn
y n 分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。例如,下列程序可以在同一坐标中同时绘制出 3 根正弦曲线。
x= linspace ( 0 , 2 * pi, 100 ) ;
plot ( x, sin ( x) , x, 2 * sin ( x) , x, 3 * sin ( x) )
(2) 当输入参数有矩阵形式时,配对的
x
、
y
x、y
x 、 y 按对应列元素为横、纵坐标分别绘制曲线,曲 线条数等于矩阵的列数。分析下列程序绘制的曲线。
x= linspace ( 0 , 2 * pi, 100 ) ;
y1= sin ( x) ;
y2= 2 * sin ( x) ;
y3= 3 * sin ( x) ;
x= [ x; x; x] ';
y= [ y1; y2; y3] ';
plot ( x, y, x, cos ( x) )
x
x
x 和
y
y
y 都是含有 3 列的矩阵,它们组成输入参数对,绘制出 3 根正弦曲线,
x
x
x 和 cos(
x
x
x ) 都是向量,它们组成输入参数对,绘制出一根余弦曲线。
3. 含选项的 plot 函数
MATLAB 提供了一些绘图选项, 用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项可以组合使用。例如,b- . 表示蓝色点画线,y:d 表示黄色虚线并用菱形符标记数据点。 当选项省略时,MATLAB 规定,线型一律用实线,自动循环使用当前坐标轴的 ColorOrder 属性指定的颜色(默认有 7 种颜色),无数据点标记符号。 线型选项如下表所示。
选项 线型 选项 线型 - 实现(默认值) -. 点画线 : 虚线 – 双画线
序号 选项 颜色 序号 选项 颜色 1 b(blue) 蓝色 5 m(magenta) 品红色 2 g(green) 绿色 6 y(yellow) 黄色 3 r(red) 红色 7 k(black) 黑色 4 c(cyan) 青色 8 w(white) 白色
选项 标记符号 选项 标记符号 . 点 v(字母) 朝下三角符号 o(字母) 圆圈 ^ 朝上三角符号 x(字母) 叉号 < 朝左三角符号 + 加号 > 朝右三角符号 * 星号 p(pentagram) 五角星符 s(square) 方块符 h(hexagram) 六角星符 d(diamond) 菱形符
要设置曲线样式可以在 plot
函数中加绘图选项,其调用格式如下:
plot ( x1, y1, 选项1 , x2, y2, 选项2 , . . . , xn, yn, 选项n)
例如,用不同线刑和颜色在同一坐标内绘制曲线
y
=
2
e
−
0.5
x
sin
(
2
π
x
)
y=2e^{-0.5x}\sin(2\pi x)
y = 2 e − 0.5 x sin ( 2 π x ) 及其包络线。 程序如下:
x= ( 0 : pi/ 100 : 2 * pi) ';
y1= 2 * exp ( - 0.5 * x) * [ 1 , - 1 ] ;
y2= 2 * exp ( - 0.5 * x) . * sin ( 2 * pi* x) ;
x1= ( 0 : 12 ) / 2 ;
y3= 2 * exp ( - 0.5 * x1) . * sin ( 2 * pi* x1) ;
plot ( x, y1, 'k:' , x, y2, 'b--' , x1, y3, 'rp' ) ;
程序运行结果如下所示。plot
函数中包含 3 组绘图参数,第一组用黑色虚线绘出两根包络线,第二组用蓝色双画线绘出曲线
y
y
y ,第三组用红色五角星离散标出数据点。程序中第一条命令用矩阵转置运算符将行向量转换为列向量。
4. 双纵坐标函数 plotyy
在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数, 其调用格式如下:
plotyy ( x1, y1, x2, y2)
其中,
x
1
,
y
1
x1,y1
x 1 , y 1 对应一条曲线,
x
2
,
y
2
x2,y2
x 2 , y 2 对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于
x
1
,
y
1
x1,y1
x 1 , y 1 数据对,右纵坐标用于 x2,y2$ 数据对。 双纵坐标图形能把函数值具有不同量纲、不同数量级的两个函数绘制在同-一坐标中,有利于图形数据的对比分析。 例如,用不同标度在同一坐标内绘制曲线
y
=
2
e
−
0.5
x
sin
(
2
π
x
)
y=2e^{-0.5x}\sin(2\pi x)
y = 2 e − 0.5 x sin ( 2 π x ) 及曲线
y
=
s
i
n
x
y=sinx
y = s in x 。 程序如下:
x= 0 : pi/ 100 : 2 * pi;
y1= exp ( - 0.5 * x) . * sin ( 2 * pi* x) ;
y2= sin ( x) ;
plotyy ( x, y1, x, y2) ;
二、绘制绘制图像的辅助操作
绘制完图形后,可能还需要对图形进行一些辅助操作,以使图形意义更加明确,可读性更强。
1. 图形标注
在绘制图形的同时,可以对图形加上一些说明,如图形名称、坐标轴说明以及图形某一部分的含义等,这些操作称为添加图形标注。有关图形标注函数的调用格式如下:
title ( 图形名称)
xlabel ( x轴说明)
ylabel ( y轴说明)
text ( x, y, 图形说明)
legend ( 图例1 , 图例2 , …)
title
和 xlabel
、ylabel
函数分别用于说明图形和坐标轴的名称。text
函数是在 (x, y) 坐标处添加图形说明。gtext
可以用来添加文本说明,执行该命令时,十字坐标光标自动跟随鼠标移动,单击鼠标即可将文本放置在十字光标处。例如,使用 gtext('cos(x)) 可放置字符串 cos(x)。legend
函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在图形空白处,用户还可以通,过鼠标移动图例,将其放到所希望的位置。除 legend
函数外,其他函数同样适用于三维图形,需要注意的是,z 坐标轴说明用 zlabel
函数。 上述函数中的说明文字,除使用标准的 ASCII 字符外,还可以使用 LaTeX(LaTeX 是一种十分流行的数学排版软件)格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。 在 MATLAB 支持的 LaTeX 字符中,用 \bf、 \it、\rm 控制字符分别定义黑体、斜体和正体字符,受 LaTeX 字符控制部分要加大括号 {} 括起来。例如,text(0.3,0.5,‘The useful {\bf MATLAB}’) 将使得 MATLAB 一词黑体显示。 一些常用的 LaTeX 字符如下表所示,其中的各个字符既可以单独使用,又可以和其他字符及命令联合使用。例如,text(1,1,'sin({\omega}t+ {beta})) 将得到标注效果 sin(
ω
\omega
ω t+
β
\beta
β )。
标识符 符号 标识符 符号 标识符 符号 \alpha
α
\alpha
α \upsilon
υ
\upsilon
υ \sim
∼
\sim
∼ \beta
β
\beta
β \phi
ϕ
\phi
ϕ \leq
≤
\leq
≤ \gamma
γ
\gamma
γ \chi
χ
\chi
χ \infty
∞
\infty
∞ \delta
δ
\delta
δ \psi
ψ
\psi
ψ \clubsuit
♣
\clubsuit
♣ \epsilon
ϵ
\epsilon
ϵ \omega
ω
\omega
ω \diamondsuit
♢
\diamondsuit
♢ \zeta
ζ
\zeta
ζ \Gamma
Γ
\Gamma
Γ \heartsuit
♡
\heartsuit
♡ \eta
η
\eta
η \Delta
Δ
\Delta
Δ \spadesuit
♠
\spadesuit
♠ \theta
θ
\theta
θ \Theta
Θ
\Theta
Θ \leftrightarrow
↔
\leftrightarrow
↔ \vartheta
ϑ
\vartheta
ϑ \Lambda
Λ
\Lambda
Λ \leftarrow
←
\leftarrow
← \iota
ι
\iota
ι \Xi
Ξ
\Xi
Ξ \uparrow
↑
\uparrow
↑ \kappa
κ
\kappa
κ \Pi
Π
\Pi
Π \rightarrow
→
\rightarrow
→ \lambda
λ
\lambda
λ \Sigma
Σ
\Sigma
Σ \downarrow
↓
\downarrow
↓ \mu
μ
\mu
μ \Upsilon
Υ
\Upsilon
Υ \circ
∘
\circ
∘ \nu
ν
\nu
ν \Phi
Φ
\Phi
Φ \pm
±
\pm
± \xi
ξ
\xi
ξ \Psi
Ψ
\Psi
Ψ \geq
≥
\geq
≥ \pi
π
\pi
π \Omega
Ω
\Omega
Ω \propto
∝
\propto
∝ \rho
ρ
\rho
ρ \forall
∀
\forall
∀ \partial
∂
\partial
∂ \sigma
σ
\sigma
σ \exists
∃
\exists
∃ \bullet
∙
\bullet
∙ \varsigma
ς
\varsigma
ς \ni
∋
\ni
∋ \div
÷
\div
÷ \tau
τ
\tau
τ \cong
≅
\cong
≅ \neq
≠
\neq
= \equiv
≡
\equiv
≡ \approx
≈
\approx
≈ \aleph
ℵ
\aleph
ℵ \Im
ℑ
\Im
ℑ \Re
ℜ
\Re
ℜ \wp
℘
\wp
℘ \otimes
⊗
\otimes
⊗ \oplus
⊕
\oplus
⊕ \oslash
⊘
\oslash
⊘ \cap
∩
\cap
∩ \cup
∪
\cup
∪ \supseteq
⊇
\supseteq
⊇ \supset
⊃
\supset
⊃ \subseteq
⊆
\subseteq
⊆ \subset
⊂
\subset
⊂ \int
∫
\int
∫ \in
∈
\in
∈ \nabla
∇
\nabla
∇ \rfloor
⌋
\rfloor
⌋ \lceil
⌈
\lceil
⌈ \ldots
…
\ldots
… \lfloor
⌊
\lfloor
⌊ \cdot
⋅
\cdot
⋅ \prime
′
\prime
′ \perp
⊥
\perp
⊥ \neg
¬
\neg
¬ \mid
∣
\mid
∣ \wedge
∧
\wedge
∧ \times
×
\times
× \copyright
©
\copyright
c ◯ \rceil
⌉
\rceil
⌉ \surd
√
\surd
√ \varpi
ϖ
\varpi
ϖ \vee
∨
\vee
∨ \langle
⟨
\langle
⟨ \rangle
⟩
\rangle
⟩
除了上表中给出的字符定义以外,还可以通过标准的 LaTeX 命令来定义上标和下标,这样可以使得图形标注更加丰富多彩。如果想在某个字符后面添加上标,则可以在该字符后面跟一个由 A 字符引导的字符串。 若想把多个字符作为指数,则应该使用大括号。例如,e^{axt} 对应的标注效果为
e
a
x
t
e^{axt}
e a x t ,而 e^axt 对应的标注效果为
e
a
x
t
e^{a}xt
e a x t 。类似地可以定义下标,下标是由下画线 _ 引导的。例如,X_{12} 对应的标注效果为
X
12
X_{12}
X 12 。
2. 坐标控制
在绘制图形时,MATLAB 可以自动根据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清晰地显示出来。所以,在一般情况下用户不必选择坐标轴的刻度范围。但是,如果用户对坐标系不满意,可利用 axis
函数对其重新设定。该函数的调用格式如下:
axis ( [ xmin, xmax, ymin, ymax, zmin, zmax] )
如果只给出前 4 个参数,则 MATLAB 按照给出的
x
、
y
x、y
x 、 y 轴的最小值和最大值选择坐标系范围,以便绘制出合适的二维曲线。 如果给出了全部参数,则系统按照给出的 3 个坐标轴的最小值和最大值选择坐标系范围,以便绘制出合适的三维图形。 axis
函数功能丰富,常用的用法还有以下几种。(1) axis equal
表示纵、横坐标轴采用等长刻度。 (2) axis square
表示产生正方形坐标系(默认为矩形)。 (3) axis auto
表示使用默认设置。 (4) axis off
表示取消坐标轴。 (5) axis on
表示显示坐标轴。 给坐标加网格线可以用 grid
命令来控制。grid on/off
命令控制是画还是不画网格线,不带参数的 grid
命令在两种状态之间进行切换。 给坐标加边框用 box
命令来控制。box on/off
命令控制是加还是不加边框线,不带参数的 box
命令在两种状态之间进行切换。 例如,我们绘制分段函数曲线并添加图形标注。
f
(
x
)
=
{
x
,
2
,
5
−
x
/
2
,
1
,
0
≤
x
<
4
4
≤
x
<
6
6
≤
x
<
8
x
≥
8
f(x)=\left\{\begin{matrix}\sqrt{x} , \\2, \\5-x/2, \\1,\end{matrix}\right. \begin{matrix}0\le x< 4 \\4\le x< 6 \\6\le x< 8 \\x\ge 8 \end{matrix}
f ( x ) = ⎩
⎨
⎧ x
, 2 , 5 − x /2 , 1 , 0 ≤ x < 4 4 ≤ x < 6 6 ≤ x < 8 x ≥ 8 整体程序如下:
x= linspace ( 0 , 10 , 100 ) ; % 产生自变量向量x
y= [ ] ; % y的初始值为空
for x0= x
if x0>= 8
y= [ y, 1 ] ; % 将函数值追加到向量y
elseif x0>= 6
y= [ y, 5 - x0/ 2 ] ;
elseif x0>= 4
y= [ y, 2 ] ;
elseif x0>= 0
y= [ y, sqrt ( x0) ] ;
end
end
plot ( x, y)
axis ( [ 0 , 10 , 0 , 2.5 ] ) % 设置坐标轴
title ( '分段函数曲线' ) ; % 加图形标题
xlabel ( 'Variable X' ) ; % 加X轴说明
ylabel ( 'Variable Y' ) ; % 加Y轴说明
text ( 2 , 1.3 , 'y=x^{1/2}' ) ; % 在指定位置添加图形说明
text ( 4.5 , 1.9 , 'y=2' ) ;
text ( 7.3 , 1.5 , 'y=5-x/2' ) ;
text ( 8.5 , 0.9 , 'y=1' ) ;
3. 图形保持
一般情况下,每执行一次绘图命令就刷新一次当前图形窗口,图形窗口原有图形将不复存在。 若希望在已存在的图形上再继续添加新的图形,可使用图形保持命令 hold
。 hold on/off
命令控制是保持原有图形还是刷新原有图形,不带参数的 hold
命令在两种状态之间进行切换。例如,我们使用图形保持功能在同一坐标内绘制曲线
y
=
2
e
−
0.5
x
sin
(
2
π
x
)
y=2e^{-0.5x}\sin(2\pi x)
y = 2 e − 0.5 x sin ( 2 π x ) 及其包络线。 程序如下:
x= ( 0 : pi/ 100 : 2 * pi) ';
y1= 2 * exp ( - 0.5 * x) * [ 1 , - 1 ] ;
y2= 2 * exp ( - 0.5 * x) . * sin ( 2 * pi* x) ;
plot ( x, y1, 'b:' ) ; % 绘制两根包络线
axis ( [ 0 , 2 * pi, - 2 , 2 ] ) ; % 设置坐标
hold on; % 设置图形保持状态
plot ( x, y2, 'k' ) ; % 绘制曲线
legend ( '包络线' , '包络线' , '曲线y' ) ; % 加图例
hold off; % 关闭图形保持
grid % 网格线控制
4. 图形窗口的分割
在实际应用中,经常需要在一个图形窗口内绘制若干个独立的图形,这就需要对图形进行分割。分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系制图形。同一图形窗口中的不同图形称为子图。 MATLAB 系统提供了 subplot
函数,用来将当前图形窗口分割成若干个绘图区。每个区域代表一个独立的子图,也是一个独立的坐标系,可以通过 subplot
函数激活某一区,该区为活动区,所发出的绘图命令都是作用于活动区域。 subplot
函数的调用格式如下:
subplot ( m, n, p)
该函数将当前图形窗口分成
m
×
n
m×n
m × n 个绘图区,即
m
m
m 行,每行
n
n
n 个绘图区,区号按行优先编号,且选定第
p
p
p 个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。 例如,我们在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。 程序如下:
x= linspace ( 0 , 2 * pi, 60 ) ;
y= sin ( x) ;
z= cos ( x) ;
t= sin ( x) . / ( cos ( x) + eps) ;
ct= cos ( x) . / ( sin ( x) + eps) ;
subplot ( 2 , 2 , 1 ) ; % 选择2 x2个区中的1 号区
plot ( x, y) ;
title ( 'sin(x)' ) ;
axis ( [ 0 , 2 * pi, - 1 , 1 ] ) ;
subplot ( 2 , 2 , 2 ) ; % 选择2 x2个区中的2 号区
plot ( x, z) ;
title ( 'cos(x)' ) ;
axis ( [ 0 , 2 * pi, - 1 , 1 ] ) ;
subplot ( 2 , 2 , 3 ) ; % 选择2 x2个区中的3 号区
plot ( x, t) ;
title ( 'tangent(x)' ) ;
axis ( [ 0 , 2 * pi, - 40 , 40 ] ) ;
subplot ( 2 , 2 , 4 ) ; % 选择2 x2个区中的4 号区
plot ( x, ct) ;
title ( 'cotangent(x)' ) ;
axis ( [ 0 , 2 * pi, - 40 , 40 ] ) ;
上例中将图形窗口分割成 2×2 个绘图区,编号从 1 到 4,各区分别绘制一幅图形,这是最规则的情况。但实际上,还可以进行更为灵活的分割,详见下面的程序(需要注意的是,图片的布局是以行为主,其次只需要数清每一个图的具体位置,大图小图不可以互相重叠)。
x= linspace ( 0 , 2 * pi, 60 ) ;
y= sin ( x) ;
z= cos ( x) ;
t= sin ( x) . / ( cos ( x) + eps) ;
ct= cos ( x) . / ( sin ( x) + eps) ;
subplot ( 2 , 2 , 1 ) ; % 选择2 x2个区中的1 号区
plot ( x, y- 1 ) ;
title ( 'sin(x)-1' ) ;
axis ( [ 0 , 2 * pi, - 2 , 0 ] ) ;
subplot ( 2 , 1 , 2 ) ; % 选择2 x2个区中的2 号区
plot ( x, z- 1 ) ;
title ( 'cos(x)-1' ) ;
axis ( [ 0 , 2 * pi, - 2 , 0 ] ) ;
subplot ( 4 , 4 , 3 ) ; % 选择4 x4个区中的3 号区
plot ( x, y) ;
title ( 'sin(x)' ) ;
axis ( [ 0 , 2 * pi, - 1 , 1 ] ) ;
subplot ( 4 , 4 , 4 ) ; % 选择4 x4个区中的4 号区
plot ( x, y) ;
title ( 'cos(x)' ) ;
axis ( [ 0 , 2 * pi, - 1 , 1 ] ) ;
subplot ( 4 , 4 , 7 ) ; % 选择4 x4个区中的7 号区
plot ( x, t) ;
title ( 'tangent(x)' ) ;
axis ( [ 0 , 2 * pi, - 40 , 40 ] ) ;
subplot ( 4 , 4 , 8 ) ; % 选择4 x4个区中的8 号区
plot ( x, ct) ;
title ( 'cotangent(x)' ) ;
axis ( [ 0 , 2 * pi, - 40 , 40 ] ) ;