在matlab中绘制分段函数

plot piecewise function in matlab

这是我的代码:

p=.2; 
x=-1:20; 
px=p*(1-p).^(x-1).*(x>=1); 
Fx=cumsum(px);
figure; 
subplot(2,1,1); 
stem(x,px);
subplot(2,1,2); 
stairs(x,Fx); 
hold on; 
stem(x,Fx,'w.')

我想在第二个子图中每条水平线的右端画一个圆圈标记。有人可以告诉我该怎么做吗?提前致谢~

类似下图,但是将圆移到每行的右端。

你可以用plot or scatter画红圈。

在脚本末尾添加以下指令之一,它们提供相同的输出。

% Option 1: using plot
plot(x+1,Fx,'or');

% Option 2: using scatter
scatter(x+1,Fx,'r');

如您所见,我的方法是简单地将 x 的每个元素加 1。这实际上是将您的数据向 x 方向移动 1 个单位。

这就是你得到的: