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

MATLAB stem()函数的用法(附带实例)

用线条显示数据点与 x 轴的距离,用一个小圆圈(默认标记)或其他指定的标记符号与线条相连,并在 y 轴上标记数据点的值,这样的图形称为火柴杆图。

在 MATLAB 二维图形下,实现这种操作的函数是 stem() ,它的调用格式及说明如下表所示:

表:stem()函数调用格式及说明
调用格式 说明
stem(Y) 如果 Y 是向量,按 Y 中元素的顺序画出火柴杆图,在 x 轴上,火柴杆之间的距离相等;若 Y 为矩阵,则把 Y 分成几个行向量,在同一横坐标的位置上画出每一个行向量元素对应的火柴杆
stem(X,Y) 在 X 指定的值的位置画出向量 Y 的火柴杆图,其中 X 与 Y 为同型的向量或矩阵
stem(...,'filled') 指定是否对火柴杆末端的“火柴头”填充颜色
stem(...,LineSpec) 用参数 LineSpec 指定线型、标记符号和火柴头的颜色画火柴杆图
stem(...,Name,Value) 使用一个或多个名称-值对组参数修改火柴杆图
stem(ax,...) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区(gca)中
h = stem(...) 返回火柴杆图的 line 图形对象句柄向量

【实例】绘制 y=sinx,y=cosx 的火柴杆图。MATLAB 程序如下:
>> close all                         % 关闭当前已打开的文件
>> clear                             % 清除工作区的变量
>> X = linspace(0,2*pi,50)';         % 创建0~2π的列向量X,元素个数为50
>> Y1 = sin(X);                      % 定义函数表达式 Y1
>> Y2 = cos(X);                      % 定义函数表达式 Y2
>> subplot(1,3,1),stem(X)            % 创建包含 50 个数据值的向量X的火柴杆图
>> subplot(1,3,2),stem(X,Y1,'->')    % 创建正弦函数的火柴杆图,设置线型与火柴头的形状
>> subplot(1,3,3),stem(X,Y2,':p')    % 创建余弦函数的火柴杆图,设置线型与火柴头的形状

运行结果如下图所示:


图 1 火柴杆图

【实例 2】抽取下面矩阵的列数据绘制火柴杆图。


MATLAB程序如下:
>> close all                                       % 关闭当前已打开的文件
>> clear                                           % 清除工作区的变量
>> Y=[5 3 8;7 4 7;16 5 4;17 6 8;19 9 4;20 16 8];   % 直接创建矩阵Y
>> Y1=Y(:,1)'                                      % 抽取矩阵Y的第1列,求逆矩阵,得到行向量Y1
Y =
     5     7    16    17    19    20
>> Y2=Y(:,2)'                                      % 抽取矩阵Y的第2列,求逆矩阵,得到行向量Y2
Y2 =
     3     4     5     6     9    16
>>  Y3=Y(:,3)'                                     % 抽取矩阵Y的第3列,求逆矩阵,得到行向量Y3
Y3 =
     8     7     4     8     4     8
>> subplot(1,3,1),stem(Y1)                         % 绘制Y1的火柴杆图
>> subplot(1,3,2),stem(Y2,Y3)                      % 绘制Y2、Y3的火柴杆图
>> subplot(1,3,3),stem(Y3)                         % 绘制Y3的火柴杆图
运行结果如下图所示:


图 2 火柴杆图形

相关文章