我试图在MATLAB中绘制斜坡函数。 我的斜坡有以下功能:
function [ y ] = ramp(x)
y=zeros(size(x));
y(x>=0)=linspace(0,x(end),length(x(x>=0)))
end
但是,我希望它具有与我的步进功能类似的效果
syms x
ezplot(5*heaviside(x-1), [-10, 10])
当我使用此代码时:
syms x
ezplot(5*ramp(x-1), [-10, 10])
当我做(x-1)时,它似乎抛出一个不可能的错误,我可以要求一些修改吗?:
Cannot prove '0 <= x - 1' literally. To test the statement mathematically,
use isAlways.
答案 0 :(得分:0)
您的阶梯函数图使用符号变量x的函数。但ramp
,你编写它的方式,是一个期望数字输入(x值的向量)的函数。这就是为什么你尝试将符号x传递给它失败了。以下是绘制此函数的正确方法:
x = linspace(-10,10,100);
plot(x, 5*ramp(x-1))
或者,您可以将ramp
重写为符号变量的函数:
function y = symbramp(x)
y = (x+abs(x))/2;
end
并按照你对Heaviside所做的绘制:
syms x
ezplot(5*symbramp(x-1), [-10,10])