MATLAB stem()函数怎么用?(新手必看)
在科学研究中,可以用离散序列图表示离散量的变化情况。在 MATLAB 中,利用函数 stem() 可以实现离散数据的可视化(茎图),其调用格式如下:
【实例】绘制离散序列图(茎图)。在编辑器中编写以下程序并运行。

图 1 离散序列图(茎图)
除使用函数 stem() 外,还可以使用函数 plot() 绘制离散数据图(散点图)。
【实例】绘制函数 y=e-αtcosβt 的离散序列图。在编辑器中编写以下程序并运行。

图 2 离散序列图
stem(Y) % 将数据序列 Y 绘制为从沿 X 轴的基线延伸的茎图,数据值显示为空心圆 % 若 Y 为向量,X 范围为 1~length(Y) % 若 Y 为矩阵,则根据相同的 X 值绘制行中的所有元素,X 范围为 1~Y 的行数 stem(X,Y) % 在 X 指定的位置绘制数据序列 Y,X 和 Y 是大小相同的向量或矩阵 % 若 X 和 Y 均为向量,则根据 X 中对应项绘制 Y 中的各项 % 若 X 为向量、Y 为矩阵,则根据 X 指定的值集绘制 Y 的每列 % 若 X 和 Y 均为矩阵,则根据 X 的对应列绘制 Y 的列 stem(__,'filled') % 填充圆 stem(__,LineSpec) % 指定线型、标记符号和颜色
【实例】绘制离散序列图(茎图)。在编辑器中编写以下程序并运行。
clear, clf % clf 用于清空当前图窗 y = linspace(-2*pi,2*pi,10); % 在 -2π~2π 之间获取等间距的 10 个数据值 subplot(1,2,1); h = stem(y); set(h,'MarkerFaceColor','blue') % 设置填充颜色为蓝色 x = 0:20; y = [exp(-0.05*x).*cos(x); exp(0.06*x).*cos(x)]'; subplot(1,2,2); h = stem(x,y); % 数据值显示为空心圆 set(h(1),'MarkerFaceColor','blue') % 数据值显示为蓝色实心圆 set(h(2),'MarkerFaceColor','red','Marker','square') % 数据值显示为红色方形运行程序后,输出如下图所示图形:

图 1 离散序列图(茎图)
除使用函数 stem() 外,还可以使用函数 plot() 绘制离散数据图(散点图)。
【实例】绘制函数 y=e-αtcosβt 的离散序列图。在编辑器中编写以下程序并运行。
clear, clf a = 0.02; b = 0.5; t = 0:1:100; y = exp(-a*t).*sin(b*t); subplot(1,2,1); plot(t,y,'r.') % 利用函数 plot 绘制散点图 xlabel('Time'); ylabel('stem') subplot(1,2,2); stem(t,y) % 利用函数 stem 绘制二维茎图 xlabel('Time'); ylabel('stem')运行程序后,输出如下图所示图形。

图 2 离散序列图