温馨提示:本文翻译自stackoverflow.com,查看原文请点击:signal processing - Incorrect plotting of ramp sequence in Matlab
matlab signal-processing

signal processing - Matlab中斜坡序列的错误绘制

发布于 2020-04-10 17:43:37

我正在尝试使用Matlab在interval内绘制离散的斜坡序列[-10, 10]

这是我的代码:

function Ramp()
   rampseq(-10, 10);
end

function rampseq (n1, n2)
    n = (n1:1:n2);
    stem (n, pw(n));
end

function y = pw(n)
    if (n < 0)
        y = 0;
        return;
    else
        y = n;
        return;
    end
end

我在pw(n)函数中定义了序列的行为(“逐段”的缩写)。请注意,如果n < 0,输出应为0or,否则n >= 0,输出应为n本身。但是,该图显示为:

这不是斜坡序列,因为Y值不是 0 when n < 0,与pw(n)函数中定义的行为相反我要去哪里错了?是否由于if某种原因而跳过了语句?命令窗口不显示任何错误。

查看更多

提问者
S.D.
被浏览
144
Harry 2020-02-02 02:46

您正在将整个向量传递npw()函数。但是,该pw()函数随后将n与0(标量)进行比较

您可以调整pw()函数以对矢量输入进行操作,如下所示:

function y = pw(n)
    y = n;
    y(n < 0) = 0;
end