通信原理仿真——绘图预备知识补充
多根二维曲线的绘制
1、plot函数的输入参数是矩阵形式
(1)当x是向量时,y是有一维与x同维的矩阵时,则绘制出不同颜色的曲线,曲线的条数与y的另一个维数相同,x被作为这些曲线共同的坐标。
figure
x=linspace(0,2*pi,100);
y=[sin(x);1+sin(x);2+sin(x)];
plot(x,y);
(2)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
figure
x=0:pi/10:2*pi;
y=sin(x);
plot([x;x;x]',[y;y*2;y*3]');
(3)对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其坐标下的曲线,曲线条数等于输入参数矩阵的列数。
figure
t=0:0.01:2*pi;
x=exp(1i*t);y=[x;2*x;3*x]';
plot(y);
2、含多个输入参数的plot函数
当plot函数有多个输入参数,且都为向量时,即:
plot(x1,y1,x2,y2,...,xn,yn);
其中, x 1 x_1 x1和 y 1 y_1 y1, x 2 x_2 x2和 y 2 y_2 y2,…, x n x_n xn和 y n y_n yn分别组成一组向量对,每一组向量对的长度可以不同。每一个向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。例如:在同一坐标中绘制三条幅值不同的正弦曲线。命令也可写成:
总结
MATLAB基本二维绘图命令
命令 | 说明 |
---|---|
plot | x轴和y轴均为线性刻度 |
loglog | x轴和y轴均为对数刻度 |
semilogx | x轴为对数刻度,y轴为线性刻度 |
semilogy | x轴为线性刻度,y轴为对数刻度 |
plotyy | 画出两个刻度不同的y轴 |
设置曲线样式
线性选项
选项 | 线型 |
---|---|
- | 实线 |
: | 虚线 |
-. | 点划线 |
– | 双划线 |
颜色选项
选项 | 颜色 |
---|---|
b(blue) | 蓝色 |
g(green) | 绿色 |
r(red) | 红色 |
c(cyan) | 青色 |
m(magenta) | 品红色 |
y(yellow) | 黄色 |
b(black) | 黑色 |
w(white) | 白色 |
标记符号选项
选项 | 标记符号 |
---|---|
. | 点 |
O(字母) | 圆圈 |
X(字母) | 叉号 |
+ | 加号 |
* | 星号 |
s(square) | 方块符 |
d(diamond) | 菱形符 |
v | 朝下三角符号 |
^ | 朝上三角符号 |
< | 朝左三角符号 |
> | 朝右三角符号 |
p(pentagram) | 五角星符 |
h(hexagram) | 六角星符 |
图形的标注与坐标控制
1、图形的标注
在MATLAB支持的LaTeX字符串中,用\bf、\it、\rm控制字符分别定义黑体、斜体和正体字符,受LaTeX控制的字符要加大括号{}括起来。
常用的LaTeX字符
标识符 | 符号 |
---|---|
\alpha | α |
\beta | β |
\gamma | γ |
\delta | σ |
\epsilon | ε |
\zeta | ξ |
\eta | η |
\theta | θ |
\pi | π |
\rho | ρ |
\sigma | δ |
\tau | τ |
\phi | φ |
\psi | ψ |
\omega | ω |
\Gamma | Γ |
\Delta | Δ |
\Theta | Θ |
\Lambda | Λ |
\Pi | Π |
\sigma | Σ |
\Psi | Ψ |
\Omega | Ω |
\leq | ≤ |
\geq | ≥ |
\div | ÷ |
\times | × |
\neq | ≠ |
\infty | ∞ |
\partial | ∂ |
\leftarrow | ← |
\uparrow | ↑ |
\rightarrow | → |
\downarrow | ↓ |
\leftrightarrow | ↔ |
如果想在某个字符后面加上一个上标,则可以在该字符后面跟一个^引导的字符串。若想把多个字符作为指数,则应该使用大括号。
x=0:pi/100:2*pi;
y1=2*exp(-0.5*x);
y2=cos(2*pi*x);
plot(x,y1,x,y2);
title('x from 0 to 2{\pi}');
xlabel('Variable X');
ylabel('Variable Y');
text(0.8,1.5,'曲线y1=2e^{-0.5x}');
text(2.5,1.1,'曲线y2=cos(2{\pi}x)');
legend('y1','y2');
2、坐标控制
一般而言,plot命令会根据所给的坐标点来自动决定图轴的范围,但是也可以使用axis命令来指定,它用于控制坐标轴的可视、取向、取值范围和轴的高宽比等。
axis auto% 使用默认设置
axis equal% 纵、横坐标轴采用等长刻度
axis square% 产生正方形坐标系
axis on/off% 显示、取消坐标轴
给坐标轴加网格线用grid命令来控制,加边框用box命令来控制。grid on/off 命令控制是画还是不画网格线,box on/off 命令控制是加还是不加边框线。
t=(0:pi/100:pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(7*t);
plot(t,[y1,y2]');
其他二维图形的绘制
特殊坐标图形的绘制
1、绘制对数坐标图形
semilogx(x1,y1,选项1,x2,y2,选项2,...);
semilogy(x1,y1,选项1,x2,y2,选项2,...);
loglog(x1,y1,选项1,x2,y2,选项2,...);
semilogx函数:x轴使用常用对数刻度;y轴仍保持线性刻度;semilogy函数:x轴保持线性刻度;y轴使用常用对数刻度;loglog函数使用全对数坐标。
x=0:0.1:10;y=10*x.*x;
subplot(2,2,1)
title('plot(x,y)');grid on
subplot(2,2,2)
semilogx(x,y);
title('semilogx(x,y)');grid on
subplot(2,2,3)
semilogy(x,y);
title('semilogy(x,y)');grid on
subplot(2,2,4)
loglog(x,y);
title('loglog(x,y)');grid on
2、绘制极坐标图形
polarplot(theta,radius,options);
功能:绘制出一个二维折线图形,该图形的各个数据点由极坐标形式给出。
说明:参数theta为极坐标极角,表示各个数据点的角度向量;参数radius为极坐标极径,表示各个数据点的幅值向量;参数options是一个选项参数,其内容与plot函数的选项参数类似。
t=0:0.01:2*pi;
r=2*sin(2*(t-pi/8)).*cos(2*(t-pi/8));
polarplot(t,r);
(未完待续)
参考文献
赵鸿图,茅艳. 通信原理MATLAB仿真教程. 人民邮电出版社,2010.