我正在尝试在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.发布于 2015-01-14 01:51:47
您的阶跃函数图适用于符号变量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])https://stackoverflow.com/questions/26771666
复制相似问题