首页 > 编程笔记 > MATLAB笔记 阅读:4

MATLAB stem()函数怎么用?(新手必看)

在科学研究中,可以用离散序列图表示离散量的变化情况。在 MATLAB 中,利用函数 stem() 可以实现离散数据的可视化(茎图),其调用格式如下:
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 离散序列图

相关文章